我必須SQL Server上的更新表,但首先我必須以檢查表中的現有數據,因此如果數據有更新,如果不做出新的插入:更新/插入到表
cmd_sql.CommandText = " SELECT BrDok as id_dok " +
" FROM ordersstavke " +
" WHERE SifParFil = '" + rw_mat["sifskl_kor"] + "'" +
" AND DokumentTip = '" + rw_mat["vrst_dok"] + "'";
MySqlDataAdapter sql_adapter = new MySqlDataAdapter(cmd_sql);
DataSet dt_dok = new DataSet("DOK_MAT_EXCHANGE");
sql_adapter.Fill(dt_dok);
if (dt_dok.Tables["DOK_MAT_EXCHANGE"].Rows.Count == 0)
{
myQuery = " INSERT INTO ordersstavke (BrDok, DocumentTip, SifParFil) " +
" VALUES ('" + rw_mat["brdok"] + "', '" +
rw_mat["vrst_dok"] + "', '" +
rw_mat["sifskl_kor"] + "')";
}
else
{
UPDATE DATA
}
但我在代碼中的錯誤,該錯誤是在這裏如果(dt_dok.Tables["DOK_MAT_EXCHANGE"].Rows.Count == 0
)
對象引用不設置爲一個對象的一個實例。
的問題是在這個if語句...
請請請從動態SQL切換到參數化查詢,如果你不打算使用全吹動存儲過程。無論何時使用動態SQL,您都會暴露出SQL注入攻擊。直接從馬的嘴巴:http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html –