如何对此进行参数化查询

时间:2016-07-14 12:38:47

标签: c# sql-server

我想让这个陈述成为一个参数化的查询,{{testjson.date}} {{testjson.faulty}} 让我对如何制作它感到困惑。

type_id

1 个答案:

答案 0 :(得分:2)

首先,使SQL 可读

string type_id = "text";  
... 
string updateCommand = 
  $@"UPDATE {type_id}_Table
        SET Status = @prm_Status,
            Seq = @prm_Seq,
            Cy = @prm_Cy,
            Ca = @prm_Ca,
            Iv = @prm_Iv
      WHERE ASDU = @prm_ASDU AND 
            IOA = @prm_IOA";

请注意,您无法参数化表格的名称,但C#6.0 字符串插值会有所帮助;然后执行更新:

  using (SqlConnection conn = new SqlConnection(ConnectionStringHere)) {
    conn.Open();

    using (SqlCommand q = new SqlCommand(updateCommand, conn)) {
      // AddWithValue: not the best choice, 
      // but I have no idea on 'bcr', 'seq'.. 'ioa' etc. types
      q.Parameters.AddWithValue("@prm_Status", bcr);    
      q.Parameters.AddWithValue("@prm_Seq", seq);
      q.Parameters.AddWithValue("@prm_Cy", cy);
      q.Parameters.AddWithValue("@prm_Ca", ca);
      q.Parameters.AddWithValue("@prm_Iv", iv);
      q.Parameters.AddWithValue("@prm_ASDU", station);
      q.Parameters.AddWithValue("@prm_IOA", ioa);  

      q.ExecuteNonQuery();  
    }
  }