Lei*_*and 0 c# mysql parameter-passing
我想在循环中重用参数化查询。
(这个查询是一个简单的例子,我认为我不能在 sql 中进行循环并只返回所需的行)
代替
private String sql = "SELECT v FROM t WHERE VAL_1 = @param_1";
for (int n=1;n<10;n++)
{
MySqlCommand m = new MySqlCommand(sql);
m.Parameters.AddWithValue("@param_1", n);
res = Convert.ToInt32(m.ExecuteScalar());
( ... )
}
Run Code Online (Sandbox Code Playgroud)
我想将查询的设置移到循环之外;就像是
private String sql = "SELECT v FROM t WHERE VAL_1 = @param_1";
MySqlCommand m = new MySqlCommand(sql);
m.Parameters.Add("@param_1"); // does not exist
for (int n=1;n<10;n++)
{
m.Parameters.Set("@param_1", n); // does not exist
res = Convert.ToInt32(m.ExecuteScalar());
( ... )
}
Run Code Online (Sandbox Code Playgroud)
因此,服务器不必为循环中的每个过滤器解析相同的 sql。
那可能吗?
您可以添加一个参数
m.Parameters.Add("@param_1", MySqlDbType.Int32);
Run Code Online (Sandbox Code Playgroud)
然后在循环中分配一个值
m.Parameters["@param_1"].Value = n;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2373 次 |
| 最近记录: |