我也测试过不行,请使用sql语句来实现update,
以前在用Java时也是一样的

解决方案 »

  1.   

    嗯,大概数据库里对应的表缺少主键
    我好像见过这个贴子,奇怪ing
      

  2.   

    不是这个原因,我以前也遇到过
    看看这个参考吧
    http://www.csdn.net/expert/topic/653/653866.xml?temp=.6345331
      

  3.   

    你的myCommand是动态生成的,你没指定其他操作的SQL语句,当然不能调用它的UPDATE方法了
      

  4.   

    数据库中表from w_T_I_User_Infor 有没有定义主关键字?
    在调用 myCommand.Update(ds,"w_T_I_User_Infor");//在该行出错
    之前应该 调 用 ds.AcceptChanges()方法。
      

  5.   

    to spring_ok(spring.z) ;你好,试过了,没出错,但。。
    数据库的内容未更新?????!!!!
    (dataset中数据更新了)
    等待中。。
      

  6.   

    try my function,测试通过:protected System.Web.UI.WebControls.Label Label1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!IsPostBack)
    {
    using(SqlConnection conn = new SqlConnection("user id=sa;pwd=mmkkadmin;initial catalog=pubs;server=server-mk;timeout=90"))
    {
    SqlCommand cmd = new SqlCommand("select * from authors",conn);
    SqlDataAdapter sda = new SqlDataAdapter();
    sda.SelectCommand = cmd;
    string updatesql = "update authors set au_lname=@au_lname where au_id=@au_id";
    sda.UpdateCommand = new SqlCommand(updatesql,conn);
    SqlParameter parameter;
    parameter = sda.UpdateCommand.Parameters.Add(new SqlParameter("@au_id",SqlDbType.VarChar,11));
    parameter.SourceColumn = "au_id";
    parameter.SourceVersion = DataRowVersion.Current; parameter = sda.UpdateCommand.Parameters.Add(new SqlParameter("@au_lname",SqlDbType.VarChar,40));
    parameter.SourceColumn = "au_lname";
    parameter.SourceVersion = DataRowVersion.Current; DataSet ds = new DataSet();
    sda.Fill(ds,"authors"); DataTable dbt = ds.Tables["authors"]; //更新最后一行
    DataRow dr = dbt.Rows[dbt.Rows.Count-1];
    //也可以更新特定行,通过过滤条件,有多种方法,请察看文档
    //DataRow[] dr = dbt.Select("au_id='172-32-1176'");
    string au_lname = "mmkk";
    dr["au_lname"] = au_lname; try
    {
    sda.Update(ds,"authors");
    Label1.Text = "更新成功!";
    }
    catch (SqlException ex)
    {
                            Label1.Text = "错误号:"+ex.Number+"  错误信息:"+ex.Message;
    } } }
    }
      

  7.   

    例子: //rerank all the project in current group, with 1, 2, 3 rank
    public void ResetRankForFundGroup(int GroupID)
    {
    //strSql = "Select GroupProjectID, PriorityRanking From GroupProject Where PriorityRanking > 0";
    strSql = "Select * From GroupProject Where GroupID = " + GroupID + " And PriorityRanking > 0 order by PriorityRanking";
    Trace.Write("strSql", strSql); OleDbConnection connCip= new OleDbConnection(this.connection);
    OleDbCommand cmdCip = new OleDbCommand(strSql,connCip);
    connCip.Open();
    OleDbDataAdapter da = new OleDbDataAdapter(cmdCip) ;
    //da.SelectCommand = new OleDbCommand(strSql,connCip);
    OleDbCommandBuilder cmdbld = new OleDbCommandBuilder(da);
    DataSet ds = new DataSet();
    da.Fill(ds,"groupproject");
    int iRank = 1;

    for (int i=0;i<ds.Tables["groupproject"].Rows.Count;i++)
    {
    ds.Tables["groupproject"].Rows[i]["PriorityRanking"] = iRank.ToString();
    iRank += 1;
    }
    da.Update(ds,"GroupProject"); connCip.Close();

    }
      

  8.   

    一.该表必须定义主键.
    二.数据采集器必须建立相应的update语句,见下:
    dim cmdbuilder As OleDbCommandBuilder
    adp = New OleDbDataAdapter(SELECTSTRING, conn)
    cmdbuilder = New OleDbCommandBuilder(adp)ok,给分吧