我必须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 –