string strSql3="update pic set pic_addr=9 where pic_id=@pic_id"; 成功string strSql3="update pic set pic_addr=@pic_addr where pic_id=@pic_id"; 失败注:     OleDbParameter ppic_addr = new OleDbParameter("@pic_addr",OleDbType.BigInt);
         ppic_addr.Value =10;
         cmd.Parameters.Add(ppic_addr);
其他略
——大家看看是什么原因——
——怎么解决啊——

解决方案 »

  1.   

    cmd.Parameters.add("@pic_addr",oleDbType.BigInt);
    cmd.Parameters["@pic_addr"].value=10;
      

  2.   

    上面两位的方法都试过!没有用!
    注1:数据库用的是ACCESS。
    注2:
    1.string strSql3="update pic set pic_addr=9 where pic_id=@pic_id"; 成功
    2.tring strSql3="update pic set pic_addr=@pic_addr where pic_id=@pic_id"; 失败1,2都不报错,只不过1成功修改了,而2没有做任何操作(强调:不报错!)
      

  3.   

    楼主的代码没有问题,可能是这条sql语句执行了,但是没有起到更改的作用。
    可以打开sql server的“事件探查器”,来跟踪update的sql语句有没有执行。
      

  4.   

    pic_addr 在Access里是什么类型?
      

  5.   


    string strSql3="update pic set pic_addr=@pic_addr1 where pic_id=@pic_id";OleDbParameter ppic_addr = new OleDbParameter("@pic_addr",OleDbType.BigInt);ppic_addr.Value =10;
    cmd.Parameters.Add(ppic_addr);
    OleDbParameter ppic_addr1 = new OleDbParameter("@pic_addr1",OleDbType.BigInt);
    ppic_addr1.Value =10;
    cmd.Parameters.Add(ppic_addr1);
      

  6.   

    这样呢?
    string strSql3="update pic set pic_addr=@pic_addr1 where pic_id=@pic_id";OleDbParameter ppic_addr = new OleDbParameter("@pic_addr",OleDbType.BigInt);
    OleDbParameter ppic_addr = new OleDbParameter("@pic_addr",OleDbType.BigInt);
    ppic_addr.Value =10;
    cmd.Parameters.Add(ppic_addr);
    OleDbParameter ppic_addr1 = new OleDbParameter("@pic_addr1",OleDbType.BigInt);
    ppic_addr1.Value =10;
    cmd.Parameters.Add(ppic_addr1);
      

  7.   

    Access 不支持 BigInt 类型,改为OleDbType.Integer或OleDbType.SmallInt再试。