动态查询在 asp.net 中不起作用

Posted

技术标签:

【中文标题】动态查询在 asp.net 中不起作用【英文标题】:Dynamic query is not working in asp.net 【发布时间】:2017-07-08 23:42:48 【问题描述】:

我通过单击行从用户那里获取行号。然后我将该数字(由用户获取)存储在一个整数中。他们我正在应用动态查询从数据库中获取相关数据。但它不起作用我的查询如下 “从 ID = x 的 project1 中选择标题” 其中 ID 和 titlw 是我的列的名称,project1 是表的名称。

这是我的 C# 代码

private void letsee()

        conn.Open();

        using (SqlCommand cmd = new SqlCommand("select Title from project1 where ID = x", conn))
        
            // create a SQL parameter to add them to the command - this will limit the results to the single user
            SqlParameter p = new SqlParameter("Title", System.Data.SqlDbType.Text);
            p.Value = 1;

            cmd.Parameters.Add(p);

            // as we are only selecting one column and one row we can use ExecuteScalar
            string connType = cmd.ExecuteReader().ToString();

           //to display on the frontend
            NEW.InnerText = connType;
        
    

【问题讨论】:

ID 是整数还是字符串?参数必须有“@”。所以你应该有 "select @Title...." 和 SqlParameter("@Title".... ExecuteReader.ToString() 不是你想的那样。 这真的是 mysql 吗?因为如果是这样,您使用了错误的提供程序(SqlCommandSqlParameter)。您需要使用MySqlCommand等。 【参考方案1】:

我认为您没有在查询中正确输入您的 id。

正确的版本应该是这样的(注意@符号):

SqlCommand cmd = new SqlCommand("select Title from project1 where ID = @Id", conn);

然后

SqlParameter param  = new SqlParameter();
param.ParameterName = "@Id";
param.Value         = 1;

终于

cmd.Parameters.Add(param);

请参考here 获取教程。

【讨论】:

仍然无法正常工作。它不工作。它抛出错误为“无效的列名'x'”。虽然 x 只是我从用户那里得到的一个整数。然后在 x 的基础上,我想显示相关的标题。但它不起作用。 代码中的“x”在哪里?可以分享一下sn-p吗?

以上是关于动态查询在 asp.net 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

下拉列表在 asp.net 的移动视图中不起作用

必需属性在 ASP.NET 中不起作用

Asp.net 按钮 onclick 在更新面板中不起作用

为啥我的正则表达式在 ASP.NET 中不起作用

回发后,我的 JavaScript 函数在 ASP.NET 中不起作用

引导日历在 asp.net gridview 中不起作用?