请各位指教,问题是这样的:
页面上有一个DropDownList,一个TextBox,一个GridView.GridView中有5个列属性,相应的DropDownList中也有这5列的名称.我想按照DropDownList中的属性值,再加上TextBox中输入的关键字进行组合查询,查询的结果在GridView中显示.如果没有DropDownList的话,那么很容易,直接SELECT 列名1,列名2,列名3,列名4,列名5 FROM 表名 WHERE 列名K=TextBox.value就可以了.但是现在查询的列名不确定啊,要根据DropDownList来决定根据哪一列查询.这怎么做啊?并且好象GridView中的SelectCommand都是写在.aspx文件中的,可不可以写在.cs文件中啊?请各位大哥大姐帮帮忙啊。十分感谢。别人给的答案:
// .aspx
<asp:gridview>
<columns>
<asp:boundfield DataField= "MyFieldAlias " />
...
<asp:sqldatasource SelectCommand= ' <%# String.Format( "SELECT {0} AS MyFieldAlias FROM MyTable WHERE MyFieldN= '{1} ' ", MyDropDownList.SelectedValue, MyTextBox.Text) %> ' ....
// .aspx.cs
...Button1_Click( ...
{ MySqlDataSource.DataBind();
MyGridView.DataBind(); }
有点看不明白,myfieldAlias是列名,MyFieldN是什么
页面上有一个DropDownList,一个TextBox,一个GridView.GridView中有5个列属性,相应的DropDownList中也有这5列的名称.我想按照DropDownList中的属性值,再加上TextBox中输入的关键字进行组合查询,查询的结果在GridView中显示.如果没有DropDownList的话,那么很容易,直接SELECT 列名1,列名2,列名3,列名4,列名5 FROM 表名 WHERE 列名K=TextBox.value就可以了.但是现在查询的列名不确定啊,要根据DropDownList来决定根据哪一列查询.这怎么做啊?并且好象GridView中的SelectCommand都是写在.aspx文件中的,可不可以写在.cs文件中啊?请各位大哥大姐帮帮忙啊。十分感谢。别人给的答案:
// .aspx
<asp:gridview>
<columns>
<asp:boundfield DataField= "MyFieldAlias " />
...
<asp:sqldatasource SelectCommand= ' <%# String.Format( "SELECT {0} AS MyFieldAlias FROM MyTable WHERE MyFieldN= '{1} ' ", MyDropDownList.SelectedValue, MyTextBox.Text) %> ' ....
// .aspx.cs
...Button1_Click( ...
{ MySqlDataSource.DataBind();
MyGridView.DataBind(); }
有点看不明白,myfieldAlias是列名,MyFieldN是什么
当然可以
System.Configuration.ConfigurationManager.ConnectionStrings["ConnString"].ToString();
SqlDataSource1.ConnectionString = connstring;
string sql="select "+DropDownList.SelectedValue+" from table where "+DropDownList.Selected.Value+"='"+textbox1.text+"'"
SqlDataSource1.SelectCommand = sql;
SqlDataSource1.Select(DataSourceSelectArguments.Empty);
SelectCommand= ' <%# String.Format( "SELECT {0} AS MyFieldAlias FROM MyTable WHERE MyFieldN= '{1} ' ", MyDropDownList.SelectedValue, MyTextBox.Text) %> '
和楼上的那个sql有什么不同,还有那个myfieldalias填写的是不是需要的所有的列名,*可以不
还有那个Myfieldn是什么
还有那个Myfieldn是什么
<asp:sqldatasource SelectCommand= ' <%# String.Format( "SELECT {0} AS MyFieldAlias FROM MyTable WHERE MyFieldN= '{1} ' ", MyDropDownList.SelectedValue, MyTextBox.Text) %> '
MyFieldN 是MyTable表中的一个字段
declare @sql varchar(100)
set 2sql='select from '+@table+' where 1=1'if(@key<>'') and (@key is not null)
begin
set @Sql=@Sql+' and ''+@k+'' like ''%'+@key+'%'''
end动态创建数据列绑定到gridview
switch(i){//DropDownList 当前选中列名值
case 1:
name='...';
break;
}
。。之后直接把值 拼装到SQL语句就行了...
<%# String.Format( "SELECT {0} AS MyFieldAlias FROM MyTable WHERE MyFieldN= '{1} ' ", MyDropDownList.SelectedValue, MyTextBox.Text) %> '就是一个查询语句
SELECT {0} AS MyFieldAlias FROM MyTable WHERE 其他字段='value' or 其他字段2='value' or MyFieldN= '{1} ' ", MyDropDownList.SelectedValue, MyTextBox.Text
String.Format( "SELECT {0} AS MyFieldAlias FROM MyTable WHERE MyFieldN= '{1} '
or 字段1='{2}' or 字段2='{3}' ", MyDropDownList.SelectedValue, MyTextBox.Text,
给字段1赋值,给字段2赋值)
<SelectParameters>
<asp:ControlParameter ControlID="dropdownlist1" PropertyName="SelectedValue" />
</SelectParameters>
// .aspx.cs
...Button1_Click( ...
{
列名=DropDownList.SelectValue();
strSqlText="SELECT 列名1,列名2,列名3,列名4,列名5 FROM 表名 WHERE " + 列名 + " like '%" + TextBox.value +"%'"
……MySqlDataSource.DataBind();
MyGridView.DataBind(); }