如何使用VB.net将数据网格视图中的N个列保存到Sql表
列未修复,用户可以在运行时添加列,用户应该能够将数据保存到表
我可以使用以下代码保存数据但我的问题是我需要保存而不提供单独的参数和列名称。用户可以在运行时向datagridview添加n个列,这些列应该保存用户点击保存按钮。
谢谢你
For Each row As DataGridViewRow In Even_Log_Grid.Rows
Dim SQLconstring As String = "My connection"
Using con As New SqlConnection(SQLconstring)
Using SQLcmd As New SqlCommand("INSERT INTO EMP_Event_Log VALUES(@Token, @Name, @DeviceName, @PDate, @PTime)", con)
SQLcmd.Parameters.AddWithValue("@Token", row.Cells("Token No").Value)
SQLcmd.Parameters.AddWithValue("@Name", row.Cells("Name").Value)
SQLcmd.Parameters.AddWithValue("@DeviceName", row.Cells("Device Name").Value)
SQLcmd.Parameters.AddWithValue("@PDate", CDate(row.Cells("Punch Date").Value))
SQLcmd.Parameters.AddWithValue("@PTime", (row.Cells("Punch Time").Value))
con.Open()
SQLcmd.ExecuteNonQuery()
End Using
End Using
Next
答案 0 :(得分:0)
我会用所有10个字段编写insert语句。然后检查列的存在并相应地添加参数值。
For Each row As DataGridViewRow In DataGridView1.Rows
If DataGridView1.Columns.Contains("Token No") Then
SQLcmd.Parameters.AddWithValue("@Token", row.Cells("Token No").Value)
Else
SQLcmd.Parameters.AddWithValue("@Token", DBNull.Value)
End If
Next
答案 1 :(得分:0)
我想我找到了解决方案。这对我有用。任何方式都适合每一个人。发布需要的代码,如果有任何错误,可以随时更正代码。谢谢&的问候,
For Each ROW As DataGridViewRow In Me.Review_Grid.Rows
For I = 0 To Me.Review_Grid.Columns.Count - 1
Dim con As New SqlConnection("My Conection String")
Dim COM As New SqlCommand(" My Insert Command)", con)
COM.Parameters.AddWithValue("@Token", ROW.Cells("TOKEN").Value)
COM.Parameters.AddWithValue("@Name", ROW.Cells("NAME").Value)
con.Open()
COM.ExecuteNonQuery()
con.Close()
Next
Next
MessageBox.Show("Saved Successfully", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
SQLSET.Clear()