Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无效的列名';店铺名称';错误_C#_Asp.net_Sql - Fatal编程技术网

C# 无效的列名';店铺名称';错误

C# 无效的列名';店铺名称';错误,c#,asp.net,sql,C#,Asp.net,Sql,我有一个基于下拉列表中所做选择的下拉列表,我填充了一个复选框列表 protected void dropdown_SelectedIndexChanged(object sender, EventArgs e) { SqlConnection Mcon = new SqlConnection(MA); SqlCommand command = new SqlCommand("select distinct Shop_Name from pr

我有一个基于下拉列表中所做选择的下拉列表,我填充了一个复选框列表

        protected void dropdown_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection Mcon = new SqlConnection(MA);
        SqlCommand command = new SqlCommand("select distinct Shop_Name from prod.dbo.Dim_Shop f INNER JOIN Dim_Warehouse p on p.Warehouse_key = f.Warehouse_Key where p.Warehouse_DB_Name=" + this.dropdown.SelectedValue, Mcon);
        SqlDataAdapter dataAadpter = new SqlDataAdapter(command);
        DataSet ds = new DataSet();
        dataAadpter.Fill(ds);
        CheckBoxList1.DataSource = ds;
        CheckBoxList1.DataTextField = "Shop_Name";
        CheckBoxList1.DataBind();
    }

当我运行此命令时,出现无效列名错误。有人能帮我吗?

问题:您没有在
查询中正确地提供
此下拉列表.SelectedValue
参数

解决方案:您需要将
VARCHAR
类型正确地用单引号括起来

试试这个:

SqlCommand command = new SqlCommand("select distinct Shop_Name from prod.dbo.Dim_Shop f INNER JOIN Dim_Warehouse p on p.Warehouse_key = f.Warehouse_Key where p.Warehouse_DB_Name='" + this.dropdown.SelectedValue+"'", Mcon);
您的
查询
容易受到sql
注入攻击
,请使用
参数化查询
避免它们

使用参数化查询:

SqlCommand command = new SqlCommand("select distinct Shop_Name from prod.dbo.Dim_Shop f INNER JOIN Dim_Warehouse p on p.Warehouse_key = f.Warehouse_Key where p.Warehouse_DB_Name=@name", Mcon);

command.Parameters.AddWithValue("@name",this.dropdown.SelectedValue);

我想最明显的问题是-在数据库的Dim_Shop表中有没有一个名为“Shop_Name”的列?@HitLikeAHammer:谢谢@苏达卡·蒂拉普迪回答说:)为什么你认为OP收到的错误可以通过你的修复来解决?苏达卡·蒂拉普迪:非常感谢。修正:)@Valley:不客气,如果对你有帮助的话,把它标记为答案。@Sudhakar Tillapudi:当然会。@KirkWoll:因为OP没有正确地封闭
这个下拉列表。SelectedValue
参数在他的
选择
查询中。