【发布时间】:2018-11-17 03:58:57
【问题描述】:
我创建了一个名为form1.vb的表单。
我有 4 个名为 supid、supname、supmobile、suploc 的文本框。
我有一个名为 datagridview1 的 DataGridView。
我在 DataGridView 中传输这 4 个 TextBoxes 数据,但是当我尝试在 SQL 数据库中发送 DataGridView 行时,它只发送 1 行。
单击插入按钮时,我希望在 SQL Server 中一次插入多行。
有很多关于C语言的教程,但是没有关于VB.Net的教程。
请在VB.Net 中帮助如何做到这一点。
我的代码:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Then
MessageBox.Show("PLEASE FILL ALL FIELDS")
Else
connection.Open()
Dim thequery As String = "select*from supplierdata where supmobile = @supmobile"
Dim cmd1 As SqlCommand = New SqlCommand(thequery, connection)
cmd1.Parameters.AddWithValue("@supmobile", TextBox3.Text)
Dim reader As SqlDataReader = cmd1.ExecuteReader()
If reader.HasRows Then
MessageBox.Show("MOBILE NO IS ALREADY REGISTERED")
Else
reader.Close()
command = New SqlCommand("INSERT INTO supplierdata VALUES (@supid,@supname,@supmobile,@suploc)", connection)
Dim i As Integer = 0
For Each row As DataGridViewRow In DataGridView1.Rows
command.Parameters.Add("supid", SqlDbType.Int).Value = DataGridView1.Rows(i).Cells(0).value
command.Parameters.Add("supname", SqlDbType.NChar).Value = DataGridView1.Rows(i).Cells(1).Value
command.Parameters.Add("supmobile", SqlDbType.NChar).Value = DataGridView1.Rows(i).Cells(2).Value
command.Parameters.Add("suploc", SqlDbType.NChar).Value = DataGridView1.Rows(i).Cells(3).Value
i = command.ExecuteNonQuery()
Next
MessageBox.Show("CUSTOMER REGISTERED SUCCESFULLY")
connection.Close()
command.Dispose()
End If
End If
End Sub
【问题讨论】:
-
您好先生,我是新来的,我第一次在这里发帖。如果可以,请指导。
-
正如我所说,答案已在别处提供。我会在这里说我在那里说的。您应该使用数据适配器和
DataTable。在数据适配器上调用Fill以填充DataTable并将其绑定到网格。保存更改只需在数据适配器上调用Update。当然,你需要先配置它,所以你应该阅读如何做到这一点。我上次提供了this link,你可以在那里学习如何做到这一点。
标签: sql-server vb.net datagridview