我想用select语句来选择数据库中我需要的记录,但是where语句中的列名是由DropDownList所选的项提供的,是变化的,而且一定要这样。而列名的值是由TextBox输入的。我的代码如下:
private void Button1_Click(object sender, System.EventArgs e)
{
string xiang,zhi;
xiang=this.DropDownListxiang.SelectedItem.Text;
zhi=this.TextBoxzhi.Text;
if (this.DropDownListlei.SelectedItem.Text=="化学元素")
{
SqlConnection MyConnection=new SqlConnection("server=(local)\\HJHSQL;database=Materials;uid=hjh;pwd=911144"); string SelectCommand="SELECT * From Elements Where xiang=zhi";
SqlCommand MyCommand=new SqlCommand(SelectCommand,MyConnection);
MyCommand.Connection.Open();
SqlDataReader dr=MyCommand.ExecuteReader();
this.DataGrid1.DataSource=dr;
}
}
错误提示:
列名 'xiang' 无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 'xiang' 无效。源错误:
行 129: SqlCommand MyCommand=new SqlCommand(SelectCommand,MyConnection);
行 130: MyCommand.Connection.Open();
行 131: SqlDataReader dr=MyCommand.ExecuteReader();
行 132: this.DataGrid1.DataSource=dr;
行 133: }
源文件: c:\inetpub\wwwroot\materialdb\chuji.aspx.cs 行: 131
我该怎样该呢?
private void Button1_Click(object sender, System.EventArgs e)
{
string xiang,zhi;
xiang=this.DropDownListxiang.SelectedItem.Text;
zhi=this.TextBoxzhi.Text;
if (this.DropDownListlei.SelectedItem.Text=="化学元素")
{
SqlConnection MyConnection=new SqlConnection("server=(local)\\HJHSQL;database=Materials;uid=hjh;pwd=911144"); string SelectCommand="SELECT * From Elements Where xiang=zhi";
SqlCommand MyCommand=new SqlCommand(SelectCommand,MyConnection);
MyCommand.Connection.Open();
SqlDataReader dr=MyCommand.ExecuteReader();
this.DataGrid1.DataSource=dr;
}
}
错误提示:
列名 'xiang' 无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 'xiang' 无效。源错误:
行 129: SqlCommand MyCommand=new SqlCommand(SelectCommand,MyConnection);
行 130: MyCommand.Connection.Open();
行 131: SqlDataReader dr=MyCommand.ExecuteReader();
行 132: this.DataGrid1.DataSource=dr;
行 133: }
源文件: c:\inetpub\wwwroot\materialdb\chuji.aspx.cs 行: 131
我该怎样该呢?
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。源错误: 行 126: SqlConnection MyConnection=new SqlConnection("server=(local)\\HJHSQL;database=Materials;uid=hjh;pwd=911144");
行 127:
行 128: string SelectCommand=String.Format("SELECT * From Elements Where {0} = '{1}',xiang,zhi");
行 129: SqlCommand MyCommand=new SqlCommand(SelectCommand,MyConnection);
行 130: MyCommand.Connection.Open();
源文件: c:\inetpub\wwwroot\materialdb\chuji.aspx.cs 行: 128