dataset数据已改,用UPDATE更新数据库不起作用?
如下程序,执行后数据库里的表tabprov内容没有变化,不知问题出在哪儿?盼高手帮看,谢谢。补充:填充到dataset很正常,窗体中有一个combobox,填充也正常。
使用sqlcommandbuilder 以及显式指定updatecommand ,两者都不行。
总之,在console输出时显示已经变化了,但后台数据库里的没有任何变化。
环境:XP系统,vs.net2008,sql server 2005 express
Imports System.Data
Imports System.Data.SqlClient
Public Class Form2
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cnn As New SqlConnection
cnn.ConnectionString = cnstr '已在模块里定义了连接字符串
cnn.Open()
Dim sql As String = "SELECT * FROM tabprov"
Dim adp As SqlDataAdapter = New SqlDataAdapter(sql, cnn)
Dim ds As New DataSet
adp.Fill(ds, "tabprov")
ComboBox1.DataSource = ds.Tables.Item(0)
ComboBox1.DisplayMember = "provname"
Dim row As DataRow = ds.Tables.Item(0).Rows.Item(0)
row("provname") = Trim(row("provname")) + "已变化"
ds.Acceptchanges()
'Dim da As SqlCommandBuilder = New SqlCommandBuilder(adp)
adp.UpdateCommand = New SqlCommand("UPDATE Tabprov VALUES ([provid]=?,[provname]=?,[provsuoxie]=?)", cnn)
adp.Update(ds, "tabprov")
cnn.Close()
End Sub
End Class --------------------编程问答-------------------- UPDATE Tabprov VALUES ([provid]=?,[provname]=?,[provsuoxie]=?)", cnn
这是UPDATE的SQL写法? --------------------编程问答-------------------- UPDATE Tabprov set provid=?,... --------------------编程问答-------------------- 是了,写错语句了 --------------------编程问答--------------------
写成这样:
UPDATE Tabprov SET [provid]=?,[provname]=?,[provsuoxie]=?
仍然没用!
请问应该怎么写?
另外,显式声明updatecommand,insertcommand,deletecommand 的语句应该怎么写? --------------------编程问答-------------------- 等号后面的值加‘’呢?
UPDATE Tabprov SET [provid]='?',[provname]='?',[provsuoxie]='?'
--------------------编程问答--------------------
传参不用加引号 --------------------编程问答-------------------- adapter.UpdateCommand = New OdbcCommand( _
"UPDATE Customers SET CustomerID = ?, CompanyName = ? " & _
"WHERE CustomerID = ?")
adapter.UpdateCommand.Parameters.Add( _
"@CustomerID", OdbcType.Char, 5, "CustomerID")
adapter.UpdateCommand.Parameters.Add( _
"@CompanyName", OdbcType.VarChar, 40, "CompanyName")
adapter.UpdateCommand.Parameters.Add( _
"@oldCustomerID", OdbcType.Char, 5, "CustomerID").SourceVersion = _
DataRowVersion.Original
--------------------编程问答-------------------- 去掉ds.Acceptchanges()
补充:.NET技术 , VB.NET