这种情况就是command builder没有生成update语句造成的,对于sybase不是很了解。你看看你的表结构问题。

解决方案 »

  1.   

    不是设不设主健的问题,是你的select里面有没有主健
      

  2.   

    MyAdapter1.UpdateCommand.ExecuteNonQuery();
    或者
    int num=OleDbCommand.ExecuteNonQuery();
      

  3.   

    的确要自己写了,当然是写SQL语句啊,Sybase支持的Update语句
      

  4.   

    是否是有字段数据库中设置不能为null,但在Select语句中没有Select出来,所以Update的时候不成功。猜测而已:)
      

  5.   

    如果是用OleDbDataAdapter向导来完成的,并且你的表有主键,这样向导就会自动生成
    selectcommand、insertcommand、updatecommand以及deletecommand,这可以在代码中查到,此时使用OleDbDataAdapter的update方法一般是不会有问题的,对sqlserver和oracle我都试过。不过我会在update之前加上一句:
    this.BindingContext[this.dataset1,"mytable"].EndCurrentEdit();
    //此句是平印象写出来的,如要试过请检查。
      

  6.   

    我个人比较赞成使用存储过程,不仅安全效率也高。
    不过我对Sybase不熟悉。