【问题标题】:Parameterized query with parameter in select returns invalid data在选择中带有参数的参数化查询返回无效数据
【发布时间】:2013-03-22 23:13:01
【问题描述】:

我有以下代码:

string connectionString = 
    "Provider=Microsoft.JET.OLEDB.4.0;" + 
    "data source=" + processProgramPath + ";";

using (OleDbConnection connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (OleDbCommand command = new OleDbCommand(
        "SELECT @Value " +
        "FROM BONDPARAMETERS " +
        "WHERE BONDPARAMETERS.SetName = @SetName", connection))
    {
        command.Parameters.AddWithValue("@Value", value);
        command.Parameters.AddWithValue("@SetName", setName);               

        var result = command.ExecuteScalar();
        return result.ToString();
    }
}

我期望得到的结果是 760。但是,我得到了 StartForce 列的标题。

值 = "启动力" setName = "450(18)-F-OE"

如果我将使用更改为:

using (OleDbCommand command = new OleDbCommand("SELECT "+value+" " +

它有效。什么给了?

提前致谢

【问题讨论】:

    标签: c# .net sql ms-access oledbconnection


    【解决方案1】:

    您不能使用这样的参数动态构建 SQL。看到这个问题:Using C# SQL Parameterization on Column Names

    【讨论】:

    • 那么我的解决方法会是一种有效的方法吗?还是像我觉得的那样俗气?
    猜你喜欢
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2019-01-17
    相关资源
    最近更新 更多