none
請問如何取得Command RRS feed

  • 問題

  • Dear All

      

      

          DataRow DnewRow = ImportDDB.DataTable.NewRow();
          DnewRow["Event_DateTime"] = MnewRow["Event_DateTime"];
          DnewRow["eqpt_unit_id"] = MnewRow["eqpt_unit_id"];
          DnewRow["sht_id"] = MnewRow["sht_id"];
          DnewRow["FieldName"] = iFieldName;
          DnewRow["FieldValue"] = reader.Value;
          DnewRow["FieldSeq"] = FinalVer;     
          ImportDDB.DataTable.Rows.Add(DnewRow);     
          ImportDDB.Update();
          ImportDDB.DataTable.AcceptChanges();

     

      以上是程式新增Record程式碼,請問要如何才能取得系統所自動產生的InsertCommand

    2008年12月2日 上午 01:41

解答

  • 那是 DataAdapter 使用的參數化查詢方法,在 DataAdapter.Update() 時,由 DataAdapter 自行將你的資料套用到參數中,這也是目前可預防 SQL Injection 的根本方法。

     

    2008年12月2日 上午 03:05
    版主

所有回覆

  • 如果你的 ImportDDB 是 DataAdapter 的話,可以用 DataAdapter.InsertCommand 來取得新增用的 SQL 指令。

    不過若是用 CommandBuilder 產生的,一定不會太好看 ...

    2008年12月2日 上午 02:49
    版主
  • 感謝您的回答

    不過 InsertCommand取出的Command如以下字串

    INSERT INTO K1HPPT1.K1HPT1D.BCODE (CODE, SUBITEM) VALUES (?, ?)

     

    能不能我輸入值之後

    DnewRow["CODE"] = "A101";
    DnewRow["SUBITEM"] = "SubDepartment";

    可以取得類似以下資料

    INSERT INTO K1HPPT1.K1HPT1D.BCODE (CODE, SUBITEM) VALUES ("A101","SubDepartment")

     

    盼請再協助

     

    2008年12月2日 上午 03:00
  • 那是 DataAdapter 使用的參數化查詢方法,在 DataAdapter.Update() 時,由 DataAdapter 自行將你的資料套用到參數中,這也是目前可預防 SQL Injection 的根本方法。

     

    2008年12月2日 上午 03:05
    版主