c# 在循环中更改 sql 的参数

标签 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());
    ( ... )
}

我想将查询的设置移到循环之外;像

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());
    ( ... )
}

因此服务器不必为循环中的每个迭代解析相同的 sql。

这可能吗?

最佳答案

你可以添加一个参数

m.Parameters.Add("@param_1", MySqlDbType.Int32);

然后在循环中用

赋值
m.Parameters["@param_1"].Value = n;

关于c# 在循环中更改 sql 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44284121/

相关文章:

php - mySQL 输出到 XML 错误

javascript - 如何在函数体中将 JavaScript 函数参数用作 jQuery 选择器?

android - 将列表传递给 Android 中的另一个 Activity

c# - 如何将对象转换为具有相同属性和数据的匿名类型对象?

c# - Windows 服务停止时子进程被终止

c# - 对有关我的超时类的反馈感兴趣

r - 如何将多个参数作为单个向量传递给函数?

c# - System.load(dll)在C#中的实现是什么?

mysql - 如何空检查 MySQL JSON 列属性?

php - 如何使用 PHP 计算多个 MySQL 查询的唯一结果?