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();                }
            }
对应的是每个数据就要调用数据库一次,如果要删除的量很大,岂不是要把数据库累死?有什么比较有效率的方法没?
红色文体是我的提问.

解决方案 »

  1.   

    是这样的呀,在数据库中是Bool类型也就是Bit类型的数据到DataGridView中就自动变成了复选框那种了哈。不需要手动添加呀。是否这个?
      

  2.   

    加一个复选框可以这样子加
    在前台代码中加入以下代码
    <asp:TemplateField>
       <ItemTemplate>
            <asp:CheckBox ID="CheckBox1" runat="server" />
       </ItemTemplate>
    </asp:TemplateField>
      

  3.   

    在代码中筛选选中的行 将其生成一个数据表  直接将表往数据库中插入删除就简单了 直接获取选中的ID 将其做成一个数组 以参数的形式给数据库 
    例如:delete tablename where id in (1,2,3,4,5)纯手打 分来
      

  4.   

    右键添加列,添加一个datagridviewcheckboxcolumn
      

  5.   

    ColumnType设为datagridviewCheckBox是对的
      

  6.   

    下面是设置CheckBox是选中(1)还是没有选中(null):private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                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;
                            }
                        }