插入数据访问数据库失败
问题描述:
这是插入到数据库的代码微软访问, 但出现错误。说插入错误 请告诉我为什么它会是这样的。并给我想法如何解决这个问题。插入数据访问数据库失败
感谢从文本
首先收集数据,然后 ,然后将代码选择数据表 ,然后把数据集中 是插入到数据库之后。 我没有看到这个问题
If txtCode.Text = "" Then
txtCode.Focus()
ElseIf cmbCneeName.Text = "" Then
cmbCneeName.Focus()
ElseIf txtCneeAddress1.Text = "" Then
txtCneeAddress1.Focus()
ElseIf txtCneeAddress2.Text = "" Then
txtCneeAddress2.Focus()
Else
Dim acces_da As OleDbDataAdapter
Dim cm As OleDbCommand
Dim acces_ds As DataSet
Dim datarowtblshipper As DataRow
Dim cmdbuilder As OleDbCommandBuilder
cm = New OleDbCommand
With cm
.Connection = DBconnection()
.CommandText = "select * from TblConsignee where con_code='" & txtCode.Text & "'"
End With
acces_da = New OleDbDataAdapter
acces_ds = New DataSet
acces_da.SelectCommand = cm
cmdbuilder = New OleDbCommandBuilder(acces_da)
acces_da.Fill(acces_ds)
Try
datarowtblshipper = acces_ds.Tables(0).NewRow
datarowtblshipper("Con_Code") = txtCode.Text
datarowtblshipper("Con_Comp") = cmbCneeName.Text
datarowtblshipper("Con_Add1") = txtCneeAddress1.Text
datarowtblshipper("Con_Add2") = txtCneeAddress2.Text
datarowtblshipper("Con_Add3") = txtCneeAddress3.Text
datarowtblshipper("Con_Add4") = txtCneeAddress4.Text
datarowtblshipper("Con_PCode") = txtCneePostCode.Text
datarowtblshipper("Con_tel") = txtCneePhoneNo.Text
datarowtblshipper("Contents") = txtCneeContents.Text
datarowtblshipper("destination") = txtDestination.Text
datarowtblshipper("Con_Cont") = txtAttention.Text
datarowtblshipper("zone") = tzone.Text
acces_ds.Tables(0).Rows.Add(datarowtblshipper)
cmdbuilder.GetInsertCommand()
acces_da.Update(acces_ds)
MsgBox("New Data Inserted!")
Catch
MsgBox("Error occured : " & vbCrLf & Err.Description, vbExclamation, "error")
End Try
End If
答
我经常使用的Access数据库。不幸的是我不熟悉你使用的方法,因为我对VB.NET还比较陌生。
试试这个方法,很容易让错误的轨迹:
Using con As New OleDbConnection
con.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; " & _
"Data Source = " '''Your path here
Dim sql_insert As String = "INSERT INTO TblConsignee (Con_Code, Con_Comp, Con_Add1, " & _
"Con_Add2, Con_Add3, Con_Add4, Con_PCode, Con_tel, " & _
"Contents, destination, Con_Cont, zone) " & _
"VALUES " & _
"(@code, @comp, @add1, @add2, @add3, @add4, @pcode, " & _
"@tel, @content, @dest, @zone);"
Dim sql_insert_entry As New OleDbCommand
con.Open()
With sql_insert_entry
.Parameters.AddWithValue("@code", txtCode.Text)
.Parameters.AddWithValue("@comp", cmbCneeName.Text)
.Parameters.AddWithValue("@add1", txtCneeAddress1.Text)
.Parameters.AddWithValue("@add2", txtCneeAddress2.Text)
.Parameters.AddWithValue("@add3", txtCneeAddress3.Text)
.Parameters.AddWithValue("@add4", txtCneeAddress4.Text)
.Parameters.AddWithValue("@pcode", txtCneePostCode.Text)
.Parameters.AddWithValue("@tel", txtCneePhoneNo.Text)
.Parameters.AddWithValue("@content", txtCneeContents.Text)
.Parameters.AddWithValue("@dest", txtDestination.Text)
.Parameters.AddWithValue("@cont", txtAttention.Text)
.Parameters.AddWithValue("@zone", tzone.Text)
.CommandText = sql_insert
.Connection = con
.ExecuteNonQuery()
End With
con.Close()
End Using
如果要更新的记录,只是改变命令字符串来更新你的数据库所需的字段。
我喜欢你的代码..,可以使用..,实际上我尝试填充所有数据到数据集,然后使用数据集来更新数据库.. 使用functiong GetInsertCommand(),他们有GetUpdateCommand,甚至GetDeleteCommand时。 –
我一直在改变我的方法,你的方法.. –
我很高兴它帮助。 –