主窗体里显示表的信息有个窗体是控制主窗体显示表的列的不知道CheckBox选中后传递过去该用SQL语句再怎么写了请高人指点下谢谢
解决方案 »
- 返回数据库中所有的表
- 关于Datagridview.AutoGenerateColumns
- 有关winform中的小问题
- 急,计费代码
- 急求VS2005下CrystalReport的使用
- 新人提问:如何向一个Money字段插入数据
- 想办一个网站,同时申请一个国际域名,不知道哪里的虚拟空间好?
- 如何在html页中调用codebehind中的变量?
- 各位大哥, 谁有这本书 Pro NET 2.0 Windows Forms and Custom Controls in C#?
- 关于C#里ADO.net的对象DataAdapter的问题.(在线等待)
- GDI+的问题
- (散分交流)请推荐一下GridView扩展控件
string strWhere = "select ";
for(int i = 0; i < 行数; i++)
{
if( checkbox.checked )
{
strWhere += 列名
}
}
呵呵,差不多就这个意思了。逐个判断checkbox,选中的就把代表的列加到sql语句的select里面。
BtnOK.DialogResult = DialogResult.OK;
BtnCancel.DialogResult = DialogResult.Cancel;
然后在确定事件里在写:
void BtnOK_Click(object sender, EventArgs e)
{
//用static bool型变量记录checked的条件
如:
if(CheckBox.Checked==true)
记录变量
}
在主体窗里面(dataGridView显示列表的界面)弹出子窗体的事件里面加上:子窗体 f=new 子窗体();
f.ower=this;
f.ShowDialog();
if(f.DialogResult == DialogResult.OK)
{
String strsql=String.Empty;//记录组合查询条件
strsql="1=1";//保存后面都可以用and或者or来连接查询条件
if(子窗体记录的条件变量==true)
{
strsql+="(字段名='"+子窗体记录的变量+"')";
}
//...后面的都像第一个这样构造查询条件,最后当成sql的where条件查询记录就行了
}
不过和我上面意思一样的,也是直接记录check的值,然后把这些值当成要显示的字段查询
string str=string.empty;
if(子窗体记录的条件变量==true)
{
if(str!="")
strsql+=",字段名";
else
strsql="字段名";
}
后面的条件也这样构造查询就行了最好把str传给sql语句
string strsql="select "+str+"from 表名";
然后将这strsql当成sql语句查询记录重新绑定dataGridView即可