当前位置:编程学习 > C#/ASP.NET >>

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=?,... --------------------编程问答-------------------- 是了,写错语句了 --------------------编程问答--------------------
引用 1 楼 cdz1022 的回复:
UPDATE Tabprov VALUES ([provid]=?,[provname]=?,[provsuoxie]=?)", cnn
这是UPDATE的SQL写法?


写成这样:
UPDATE Tabprov SET [provid]=?,[provname]=?,[provsuoxie]=? 
仍然没用!
请问应该怎么写?
另外,显式声明updatecommand,insertcommand,deletecommand 的语句应该怎么写? --------------------编程问答-------------------- 等号后面的值加‘’呢?
UPDATE Tabprov SET [provid]='?',[provname]='?',[provsuoxie]='?'
--------------------编程问答--------------------
引用 5 楼 Ranbir_Liu 的回复:
等号后面的值加‘’呢?
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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,