如何将sql server 中的字段名定义为变量 我想在.net中将做一个查询界面其中想通过下拉框对任意字段的值进行查询,如何做字段名的变量呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 exec('select '+@name+' from table'),下拉框的值传给@name 简单的说,有两个办法,一个是通过Combobox来组织字符串。通过组织好的字符串去sql里执行。第二个是通过Combobox来决定参数,通过参数调用不同的字段。前者效率高。 楼主的意思应该是当作查询条件吧?SQL=" SELECT * FORM TABLENAME WHERE "+Combobox.selectVale+" =''"当作查询字段时:SQL=" SELECT "+Combobox.selectVale+" FORM TABKENAME" lz的问题有两个办法可以解决1. string sql = "SELECT * FROM Table1 WHERE " + 你的字段名 + " 你的条件";//大于小于之类随便你2. 存储过程中(SQLServer语法) DECLARE @SQL VARCHAR(2000) SET @SQL = "SELECT * FROM Table1 WHERE " --假设你的存储过程有一个输入参数@Condition(这个就是查询条件,如 ColA LIKE 'AAA%'之类的) SET @SQL = @SQL + @Condition EXEC @SQL 我使用下面两条语句测试都不成功,一给@x赋值则查询到0条记录sqlstr="select * from P_TRADE where'"+DropDownList1.SelectedValue+ "'like '%'+@x+'%'";或sqlstr="select * from P_TRADE where @y like '%'+@x+'%'";而用下面语句则一切正常sqlstr="select * from P_TRADE where cut_mode like '%'+@x+'%'";//cut_mode为其中的一个字段,测试过@y的值也为cut_modeSqlConn conn2 = new SqlConn();conn2.Open();SqlDataAdapter mycmd2=new SqlDataAdapter(sqlstr,conn2.connstr);DataSet ds2=new DataSet();mycmd2.SelectCommand.Parameters.Add("@x",SqlDbType.VarChar,50);//用TextBox1.Text存放字段的值mycmd2.SelectCommand.Parameters["@x"].Value=TextBox1.Text;mycmd2.SelectCommand.Parameters.Add("@y",System.Data.SqlDbType.NVarChar);//用DropDownList1.SelectedValue存放字段的名字mycmd2.SelectCommand.Parameters["@y"].Value=DropDownList1.SelectedValue;mycmd2.Fill(ds2);DataGrid1.DataSource=ds2;DataGrid1.DataBind();mycmd2.Dispose();conn2.Close();不知何故 请教高手设计关系表 PVCS扩展开发问题,用过PVCSVCPLib.dll和精通COM编程的进来 RichTextBox在KeyPress里面handled以后为何中文还可以输入 菜虫:关于VS.2003高度问题? 打开加密的数据库出现这样的错误提示 配置文件融合进exe文件 请教dataGridView单元格能双击选中复制,但不能编辑的方法 哪位大虾有用C#写的OUTLOOK式的界面程序? WPF,请问如何做自动升级组件 请问各位,在哪里可以下载vs.net? .net连接oracle问题 winform利用DataGrid更新数据库的问题
第二个是通过Combobox来决定参数,通过参数调用不同的字段。
前者效率高。
SQL=" SELECT * FORM TABLENAME WHERE "+Combobox.selectVale+" =''"
当作查询字段时:SQL=" SELECT "+Combobox.selectVale+" FORM TABKENAME"
1. string sql = "SELECT * FROM Table1 WHERE " + 你的字段名 + " 你的条件";//大于小于之类随便你
2. 存储过程中(SQLServer语法)
DECLARE @SQL VARCHAR(2000)
SET @SQL = "SELECT * FROM Table1 WHERE "
--假设你的存储过程有一个输入参数@Condition(这个就是查询条件,如 ColA LIKE 'AAA%'之类的)
SET @SQL = @SQL + @Condition
EXEC @SQL
sqlstr="select * from P_TRADE where'"+DropDownList1.SelectedValue+ "'like '%'+@x+'%'";
或
sqlstr="select * from P_TRADE where @y like '%'+@x+'%'";
而用下面语句则一切正常
sqlstr="select * from P_TRADE where cut_mode like '%'+@x+'%'";
//cut_mode为其中的一个字段,测试过@y的值也为cut_modeSqlConn conn2 = new SqlConn();
conn2.Open();
SqlDataAdapter mycmd2=new SqlDataAdapter(sqlstr,conn2.connstr);
DataSet ds2=new DataSet();
mycmd2.SelectCommand.Parameters.Add("@x",SqlDbType.VarChar,50);
//用TextBox1.Text存放字段的值
mycmd2.SelectCommand.Parameters["@x"].Value=TextBox1.Text;
mycmd2.SelectCommand.Parameters.Add("@y",System.Data.SqlDbType.NVarChar);
//用DropDownList1.SelectedValue存放字段的名字
mycmd2.SelectCommand.Parameters["@y"].Value=DropDownList1.SelectedValue;
mycmd2.Fill(ds2);
DataGrid1.DataSource=ds2;
DataGrid1.DataBind();
mycmd2.Dispose();
conn2.Close();
不知何故