none
这条语句为何无法执行 RRS feed

  • 问题

  •  mycmd.CommandText = "update cjb set @LM=@ms7 where id=@ID";
                 mycmd.Parameters.Add("@ms7", OleDbType.VarBinary);
                  mycmd.Parameters ["@ms7"].Value = ms7.ToArray();
                  mycmd.Parameters.Add("@ID", OleDbType.Integer);
                  mycmd.Parameters["@ID"].Value =dataGridView1.Rows[xy].Cells[0].Value ;
                  mycmd.Parameters.Add("@LM", OleDbType.Char  );
                  mycmd.Parameters["@LM"].Value = lm;
                  mycmd.ExecuteNonQuery();

    第一条语句中使用了参数,如果将参数@LM换成数据库中具体的列名称,如“姓名”则运行没有问题,这是为何,难道列名称不能用参数吗?昐解答,谢谢!

     

    2011年10月31日 2:07

答案

  • 这里 应该需要构造动态sql的.跟类型无关吧
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    我會錯意了嗎?不好意思。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 牛先生 2011年11月1日 10:23
    2011年10月31日 9:10

全部回复

  • You need dynamic sql for that.
    2011年10月31日 3:09
  • 你目前@LM是Char,@ms7是VarBinary,我試過會發生轉型錯誤。

    試試看把@LM和@ms7這兩個參數的OleDbType設定為一樣。


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年10月31日 8:09
  • 这里 应该需要构造动态sql的.跟类型无关吧
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年10月31日 8:32
  • 这里 应该需要构造动态sql的.跟类型无关吧
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    我會錯意了嗎?不好意思。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 牛先生 2011年11月1日 10:23
    2011年10月31日 9:10
  • update cjb set @LM=@ms7

    以上列名称不能用参数的方式

    所以你指定了@LM类型也没用


    Shadowと愉快なコード達

    2011年11月1日 1:53