110,571
社区成员
发帖
与我相关
我的任务
分享
private string columns = "";//全局变量columns
private void button1_Click(object sender, EventArgs e)
{
string colTemp = "";//保存已选中的列 以便执行完操作之后不用清空重选 而可以直接追加
string sql;
//判断列是否为空 为空则选择所有(当然 可以执行你需要的操作 为空提示选择之类的)
if (string.IsNullOrEmpty(columns))
sql = "select * from tablename";
else
{
colTemp = columns;//将已选中项保存
//截取正确的列格式 这样拼接的结果最后会多一个',' 所有需要截掉 否则sql语句会报错
columns = columns.Substring(0, columns.LastIndexOf(','));//①
sql = "select " + columns + " from tablename";//拼接成完整的sql语句 注意空格
}
MessageBox.Show(sql);//执行操作 我这里是弹窗 你可以执行对数据库的操作
columns = colTemp;//还原已选择的列 因为在①处columns的值被截取发生变化 如果不还原继续选择 拼接的语句会出错
}
//CheckBox共享此事件
private void CHKCheckedChanged(object sender, EventArgs e)
{
//还原事件源
CheckBox chk = sender as CheckBox;
//构造sql中的列名
string col = chk.Text + ", ";
//判断选中状态 选中则追加列名 否则移除
if (chk.Checked)
columns += col; //全局变量columns 在上面 ↑
else
columns = columns.Remove(columns.IndexOf(col), col.Length);
}