添加 DataViewGrid 的内容以访问 - VB
Adding contents of a DataViewGrid to access - VB
我遇到了一个令人沮丧的问题!我下面的 VB 代码旨在将 DataGridView 中的记录传输到 Access 数据库。比方说,gridview有3条记录
Name|House|Age
John|L|1
Rick|B|12
Fred|A|20
'name|house|age'是GridView的header,三个记录组成body。在我下面的逻辑中,我在 Access 数据库中得到了 John 的记录三次(即,我没有 John、Rick 和 Fred,而是完全相同的 John, L, 1 三次)。
我确定这是我忽略的一个小逻辑错误 - 所以如果有新的视角和一双眼睛就更好了。我只包括了我认为是问题根源的内容,但如果问题可能不在此范围内,我很乐意包括更多来源。
感谢您的帮助!
Dim con As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =Jack.mdb")
Dim cmd As New OleDb.OleDbCommand("INSERT INTO students(StuName,House,Age) VALUES (@StuName,@House,@Age)", con)
Dim studentName As String
Dim studentHouse As String
Dim studentAge As String
con.Open()
For x As Integer = 1 To DataGridView1.Rows.Count - 1
studentName = DataGridView1.Rows(x).Cells(0).Value
studentHouse = DataGridView1.Rows(x).Cells(1).Value
studentAge = DataGridView1.Rows(x).Cells(2).Value
Try
cmd.Parameters.AddWithValue("@StuName", SqlDbType.Text).Value = studentName
cmd.Parameters.AddWithValue("@House", SqlDbType.Text).Value = studentHouse
cmd.Parameters.AddWithValue("@Age", SqlDbType.Text).Value = studentAge
Catch ex As Exception
End Try
cmd.ExecuteNonQuery()
Next x
con.Close()
你一遍又一遍地添加参数。尝试在循环开始时清除它们:
For x As Integer = 1 To DataGridView1.Rows.Count - 1
cmd.Parameters.Clear()
并避免出现空的 Try-Catch。当你这样做时,你忽略了代码中的问题。一方面,"Age" 字段可能不应该是文本字段。
由于您使用的是 OleDb 库,因此您的参数可能应该使用 OleDbType 而不是 SqlDbType。
我遇到了一个令人沮丧的问题!我下面的 VB 代码旨在将 DataGridView 中的记录传输到 Access 数据库。比方说,gridview有3条记录
Name|House|Age
John|L|1
Rick|B|12
Fred|A|20
'name|house|age'是GridView的header,三个记录组成body。在我下面的逻辑中,我在 Access 数据库中得到了 John 的记录三次(即,我没有 John、Rick 和 Fred,而是完全相同的 John, L, 1 三次)。
我确定这是我忽略的一个小逻辑错误 - 所以如果有新的视角和一双眼睛就更好了。我只包括了我认为是问题根源的内容,但如果问题可能不在此范围内,我很乐意包括更多来源。
感谢您的帮助!
Dim con As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =Jack.mdb")
Dim cmd As New OleDb.OleDbCommand("INSERT INTO students(StuName,House,Age) VALUES (@StuName,@House,@Age)", con)
Dim studentName As String
Dim studentHouse As String
Dim studentAge As String
con.Open()
For x As Integer = 1 To DataGridView1.Rows.Count - 1
studentName = DataGridView1.Rows(x).Cells(0).Value
studentHouse = DataGridView1.Rows(x).Cells(1).Value
studentAge = DataGridView1.Rows(x).Cells(2).Value
Try
cmd.Parameters.AddWithValue("@StuName", SqlDbType.Text).Value = studentName
cmd.Parameters.AddWithValue("@House", SqlDbType.Text).Value = studentHouse
cmd.Parameters.AddWithValue("@Age", SqlDbType.Text).Value = studentAge
Catch ex As Exception
End Try
cmd.ExecuteNonQuery()
Next x
con.Close()
你一遍又一遍地添加参数。尝试在循环开始时清除它们:
For x As Integer = 1 To DataGridView1.Rows.Count - 1
cmd.Parameters.Clear()
并避免出现空的 Try-Catch。当你这样做时,你忽略了代码中的问题。一方面,"Age" 字段可能不应该是文本字段。
由于您使用的是 OleDb 库,因此您的参数可能应该使用 OleDbType 而不是 SqlDbType。