有两个下拉列表框(DropDownList),暂定为A ,B。如果不选A中内容,选B中一项内容,则满足该内容的数据从数据库输出来;选A,不选B,满足A的输出来;即选A,又选B,同时满足A,B条件的输出来。请问怎么搞?关键怎么实现这三种条件判断,最好写点代码.能用或有帮助立即给分。
解决方案 »
- 在线等 一个关于不等于的表达式写法
- 关于线程与线程之间访问问题
- 如何批量上传已知路径的文件
- 帮忙看看这个 引用为空 的异常
- 如何把文件写道自己的目录里!!急急!!问题解决就给分!!!!
- 求教一个关于非托管DLL方法调用的问题~
- 急!!!网站老是出错,打不开网页,显示的都是乱码 然后重启iis服务就可以了
- windows media player sdk 播放时间编辑
- .net中Web页面中如何让弹出窗口和Response.Redirect("FST_Management2.aspx")一起使用?
- 求,毕业设计思路
- VS2008有问题
- 关于《编程之美》上的CPU占用率的控制的题目,我照样子写了一个,但是怎么根据自己的cpu设置sleep和busy的value才比较合适?
sql="select * from table where 1=1 ";
if(b.selected && a.selected)
sql += " and ( key like '%b%' or key like '%a%')"
else if(b.selected)
sql += " and key like '%b%' ";
else if(a.selected)
sql += " and key like '%a%'";大致意思
然后三种情况就统一为A&&B了。如果A不选那就是True&&B = B,B不选同上。
其实True的情况也就是
bool SelectA = false,SelectB=false;
string sql = "select * from t1 ";
if (SelectA && !SelectB) { sql += "where [XXX]='" + comboBox1.SelectedValue.ToString() + "'"; }
else if (!SelectA && SelectB) { sql += "where [XXX]='" + comboBox2.SelectedValue.ToString() + "'"; }
else if (SelectA && SelectB) { sql += "where [XXX]='" + comboBox1.SelectedValue.ToString() + "' and [XXX]='" + comboBox1.SelectedValue.ToString() + "'"; }
MessageBox.Show(sql);
SelectA = SelectB = false;然后在
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
SelectA = true;
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
SelectB = true;
}
{
DataTable dt;
DataView dv;
public Form1()
{
InitializeComponent(); dt = new DataTable();
dt.Columns.Add("ID", typeof(Int32));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Dept", typeof(string)); dt.Rows.Add(new object[] { 1, "张三", "生产科" });
dt.Rows.Add(new object[] { 2, "李四", "资料科" });
dt.Rows.Add(new object[] { 3, "王五", "人事科" });
dt.Rows.Add(new object[] { 4, "Mark", "人事科" });
dt.Rows.Add(new object[] { 5, "Jim", "外务科" });
dv = dt.DefaultView;
dataGridView1.DataSource = dv;
} private void cmbA_TextChanged(object sender, EventArgs e)
{
RefreshData();
} private void cmbB_TextChanged(object sender, EventArgs e)
{
RefreshData();
} // 刷新数据
private void RefreshData()
{
string strCondition = string.Empty; // 条件
string strA = cmbA.Text; // A内容
string strB = cmbB.Text; // B内容
if (!string.IsNullOrEmpty(strA))
{
// 如果A有内容,生成符合A的条件
strCondition = "[Name] LIKE '%" + strA + "%'";
}
if(!string.IsNullOrEmpty(strB))
{
// 如果B有内容,生成符合B的条件
// 要处理与已有条件的结合
strCondition += (string.IsNullOrEmpty(strCondition) ? "" : " AND ") + "[Dept] LIKE '%" + strB + "%'";
}
dv.RowFilter = strCondition;
}
}
1 A,B 都有个默认项,如:"请选择" value 绑定为"%"
2 "select 字段 from 表 where 条件a like '" + A.SelectedValue + "' and
条件b LIKE '" + B.SelectedValue + "'"
这样比楼上的都简单吧!