DataGridView如何增加一个复选框列?
另:如果复选框选中的比较多,请问操作数据库的时候,是一行一行的增加,还是有什么办法可以一起增加.比如:我在checklistbox 中有这样的应用. if (checkedListBox1.CheckedItems.Count != 0)
{
// If so, loop through all checked items and print results.
string s = "";
for (int x = 0; x <= checkedListBox1.CheckedItems.Count - 1; x++)
{
courid = checkedListBox1.Items[x].ToString();
courid = courid.Substring(0,6);
SqlCommand cmd = new SqlCommand("delete from s_SelectResult where studid ='" + stud + "' and courid = '" + courid + "'", con.conn);
con.conn.Open();
cmd.ExecuteNonQuery();
con.conn.Close(); }
}
对应的是每个数据就要调用数据库一次,如果要删除的量很大,岂不是要把数据库累死?有什么比较有效率的方法没?
红色文体是我的提问.
另:如果复选框选中的比较多,请问操作数据库的时候,是一行一行的增加,还是有什么办法可以一起增加.比如:我在checklistbox 中有这样的应用. if (checkedListBox1.CheckedItems.Count != 0)
{
// If so, loop through all checked items and print results.
string s = "";
for (int x = 0; x <= checkedListBox1.CheckedItems.Count - 1; x++)
{
courid = checkedListBox1.Items[x].ToString();
courid = courid.Substring(0,6);
SqlCommand cmd = new SqlCommand("delete from s_SelectResult where studid ='" + stud + "' and courid = '" + courid + "'", con.conn);
con.conn.Open();
cmd.ExecuteNonQuery();
con.conn.Close(); }
}
对应的是每个数据就要调用数据库一次,如果要删除的量很大,岂不是要把数据库累死?有什么比较有效率的方法没?
红色文体是我的提问.
解决方案 »
- "在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。"}
- 难道一定要通过多次遍历,才能获得全部子节点吗??(包括子节点的子节点的子节点....所有节点)
- datagridview cellcontent 事件
- c#里面如何创建工作者线程,请高手帮忙写写代码,小弟菜鸟一只
- 大文件上传 IIS有时挂掉
- .net 修改注冊表問題
- ----------------------之前只用过asp.net,请问winform里将窗体最小化怎么实现。--------------
- ASP.NET的奇怪问题
- 如何把未知对像从BinaryFormatter转到SoapFormatter??高分求解,急!!!!!
- ?》》》窗体难看死了,怎么办???》》》大侠帮忙....
- codedom到底用在什么场景下合适
- 标签控件Label位于其他控件之上时,如何实现背景透明?
在前台代码中加入以下代码
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
例如:delete tablename where id in (1,2,3,4,5)纯手打 分来
{
dataGridView2.CommitEdit(DataGridViewDataErrorContexts.Commit); if (e.ColumnIndex == 1)
{
if (((DataGridViewCheckBoxCell)dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag == null)
((DataGridViewCheckBoxCell)dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag = "1";
else
{
((DataGridViewCheckBoxCell)dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex]).Tag = "0";
}
}
} 下面是遍历CheckBox:for (int j = 0; j < dataGridView2.Rows[i].Cells.Count; j++)
{
//判断是否是checkbox列
if (this.dataGridView2.Columns[j].GetType().Name == "DataGridViewCheckBoxColumn")
{
if ((((DataGridViewCheckBoxCell)dataGridView2.Rows[i].Cells[j]).Tag == null) || (((DataGridViewCheckBoxCell)dataGridView2.Rows[i].Cells[j]).Tag.ToString() == "0"))
{
strTmp1 = "";
}
else if (((DataGridViewCheckBoxCell)dataGridView2.Rows[i].Cells[j]).Tag.ToString() == "1")
{
ckb = dataGridView2.Rows[i].Cells[j].Value.ToString();
strTmp1 = strTmp1 + "," + ckb;
}
break;
}
}