MovieID为主键
       
sqlcmd = New SqlDataAdapter("select * from moviedata where id=" & MovieID, Conn)
Dim scb As New SqlCommandBuilder(sqlcmd)
ds = New DataSet
sqlcmd.Fill(ds, "moviedata")
Dim dr As DataRow = ds.Tables("moviedata").Rows(0)
dr("moviename") ="天下无贼"
sqlcmd.Update(ds, "moviedata")没有出错,但是就是改不了,在程序中输出 dr("moviename") 依然是以前的值!
高手,一定要帮我啊!

解决方案 »

  1.   

    你的updatecommand在哪里。SqlConnection cn=new SqlConnection();
    cn.ConnectionString="server=localhost;uid=sa;pwd=;database=northwind";
    SqlCommand cmd=new SqlCommand();
    cmd.Connection=cn;//指定命令所运行的连接
    cmd.CommandText="select * from Employees"; //所要运行的SQL命令
    cmd.CommandType=CommandType.Text;
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand=cmd;//指定适配器的选择命令
    DataSet ds=new DataSet();
    da.Fill(ds,"Emp");//适配器取出数据存放到数据集中。
    //这里用户可以修改数据//自动生成具有以下用途的单表命令:使对 DataSet 所做的更改与关联的 SQL Server 数据库相协调
    //SqlDataAdapter 不会自动生成实现 DataSet 的更改与关联的 SQL Server 实例之间的协调所需的 Transact-SQL 语句。
    //但是,如果设置了 SqlDataAdapter 的 SelectCommand 属性,
    //则可以创建一个 SqlCommandBuilder 对象来自动生成用于单表更新的 Transact-SQL 语句。
    //然后,SqlCommandBuilder 将生成其他任何未设置的 Transact-SQL 语句。//这里没有显示的指定insert update delete语句,
    //因此使用CommandBuilder对象根据数据适配器的select来生成这些命令
    SqlCommandBuilder sb=new SqlCommandBuilder(da);
    da.Update(ds);//这里更新数据, 
      

  2.   

    最好是显示指出updatecommand deletecommand  insertcommadn
      

  3.   

    试一下:
    sqlcmd = New SqlDataAdapter("select * from moviedata where id=" & MovieID, Conn)
    Dim scb As New SqlCommandBuilder(sqlcmd)
    ds = New DataSet
    sqlcmd.Fill(ds, "moviedata")
    Dim dr As DataRow = ds.Tables("moviedata").Rows(0)
    dr.BeginEdit()
    dr("moviename") ="天下无贼"
    dr.EndEdit()
    sqlcmd.Update(ds, "moviedata")
      

  4.   

    还有,你怎么没有updateCommand?
      

  5.   

    问题是我以前,不用updateCommand,用下面这种方法是可以插入的,我想也应该可以修改的吧
    sqlcmd = New SqlDataAdapter("select * from moviedata where id=" & MovieID, Conn)
    Dim scb As New SqlCommandBuilder(sqlcmd
    ds = New DataSet
    sqlcmd.Fill(ds, "moviedata")
    Dim dr As DataRow = ds.Tables("moviedata").NewRow()
    dr("moviename") ="天下无贼"
    ds.Tables("moviedata").Rows.Add(dr)
    sqlcmd.Update(ds, "moviedata")
      

  6.   

    问题是我以前,不用updateCommand,用下面这种方法是可以插入的,我想也应该可以修改的吧
    sqlcmd = New SqlDataAdapter("select * from moviedata where id=" & MovieID, Conn)
    Dim scb As New SqlCommandBuilder(sqlcmd
    ds = New DataSet
    sqlcmd.Fill(ds, "moviedata")
    Dim dr As DataRow = ds.Tables("moviedata").NewRow()
    dr("moviename") ="天下无贼"
    ds.Tables("moviedata").Rows.Add(dr)
    sqlcmd.Update(ds, "moviedata")