我想通过对话框选择Excel图表并将其导入到SQL Server数据库中,然后自动将其保存到SQL Server表中。我想通过我创建的子项来生成记录ID。
产生的子程式MembersID
为:
Public MyNewMembersID As Integer
Public Sub Code_Members()
Dim dt As New DataTable
Dim da As New SqlDataAdapter("select max(MembersID) from Members", Con)
da.Fill(dt)
If IsDBNull(dt(0)(0)) = True Then
MyNewMembersID = 1
Else
MyNewMembersID = dt(0)(0) + 1
End If
这是我的代码,错误消息MembersID
不能为NULL:
Imports System.IO
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.Configuration
Public Class MembersImport
Private Sub MembersImport_FilePath_Button_Click(sender As Object, e As EventArgs) Handles MembersImport_FilePath_Button.Click
MembersImport_OpenFileDialog.ShowDialog()
End Sub
Private Sub MembersImport_ImportFile_Button_Click(sender As Object, e As EventArgs) Handles MembersImport_ImportFile_Button.Click
If MembersImport_FilePath_TextBox.Text = "" Then
MsgBox("Please Select File Excel", MsgBoxStyle.RetryCancel, "File Not Found")
MembersImport_FilePath_Button.PerformClick()
Else
Dim con_excel As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & MembersImport_FilePath_TextBox.Text & "';Extended Properties=""Excel 12.0 Xml;HDR=Yes""")
con_excel.Open()
Dim query_excel As String = "Select * from [Sheet1$]"
Dim cmd As OleDbCommand = New OleDbCommand(query_excel, con_excel)
Dim rd As OleDbDataReader
Dim con_sql As New SqlConnection()
Dim con_sqlDB As String = "Data Source=(localdb)\ProjectsV13;Initial Catalog=Euro_SQL_Server;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
con_sql.ConnectionString = con_sqlDB
con_sql.Open()
Using BulkCopy As SqlBulkCopy = New SqlBulkCopy(con_sql)
BulkCopy.DestinationTableName = "dbo.Members"
Try
rd = cmd.ExecuteReader
BulkCopy.WriteToServer(rd)
rd.Close()
con_sql.Close()
MsgBox("تم الاسترداد بنجاح")
MembersImport_FilePath_TextBox.Text = ""
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Using
Load_Members()
Me.Close()
End If
End Sub
Private Sub MembersImport_OpenFileDialog_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MembersImport_OpenFileDialog.FileOk
MembersImport_FilePath_TextBox.Text = MembersImport_OpenFileDialog.FileName
End Sub
End Class
这是我的表结构:
CREATE TABLE [dbo].[Members]
(
[MembersID] INT NOT NULL,
[MembersName] NVARCHAR(MAX) NULL,
[MembersGender] NVARCHAR(MAX) NULL,
[MembersPhone] NVARCHAR(MAX) NULL,
[MembersAddress] NVARCHAR(MAX) NULL,
[MembersMembershiping] BIT NULL,
[MembersMembershipNum] NVARCHAR (MAX) NULL,
[MembersMembershipValidityFrom] DATE NULL,
[MembersMembershipValidityTo] DATE NULL,
[MembersSubscriberSystem] NVARCHAR(MAX) NULL,
[MembersCarBrand] NVARCHAR(MAX) NULL,
[MembersCarModel] NVARCHAR(MAX) NULL,
[MembersCarManufacturingYear] NVARCHAR(MAX) NULL,
[MembersCarNum] NVARCHAR(MAX) NULL,
[MembersChassisNum] NVARCHAR(MAX) NULL,
[MembersCarColor] NVARCHAR(MAX) NULL,
[MembersNotes] NVARCHAR(MAX) NULL,
[ActionBy] NVARCHAR(MAX) NULL,
PRIMARY KEY CLUSTERED ([MembersID] ASC)
);
因此,我所需要的只是将生成的Excel中的数据导入MembersID
到SQL Server数据库中
您不会在代码中生成ID。通过使ID字段成为身份字段来生成ID。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句