以下是我写的方法:        public void Show(CheckedListBox clb)
        {
            string sql = "select Cam_Code,Cam_Flag from ST_Cam";
            DataSet ds = SqlHelper.ExecuteDataset(db.ConnectionString, CommandType.Text, sql);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                clb.Items.Add(dt.Rows[i][0]);//把每一项添加到CheckedListBox 
                if (dt.Rows[i][1].ToString() == "1")
                {
                     //如果数据为1了,CheckedListBox 的选项就会选上,勾选上
                    clb.SetItemChecked(i,true);
                }
            }
        }请问,我在每一项修改了他的Checked后,就是有的勾选项更改了,怎么存回到数据库呢?
就是说选上的项,数据库会存为1;没有选上的项,数据库会存为0

解决方案 »

  1.   

    clb.Items[i].Value = dt.Rows[i][1].ToString();
    取的时间取他的Value就可以了
      

  2.   


    给你一个精典操作数据库类。
    class DBcon
        {
    private string strSQL;
    //与SQL Server的连接字符串设置
                     private string connectionString; 
                   //与数据库的连接
    private SqlConnection myConnection;

    private SqlCommandBuilder sqlCmdBld;
    private DataSet ds = new DataSet();
    private SqlDataAdapter da;
    /////////////////////////////////操作脱机数据库(创建了该类的实例时直接用)  /////////////////////////////////////////////////////

    //根据输入的SQL语句检索数据库数据
    public DataSet SelectDataBase(string tempStrSQL,string tempTableName)

    this.strSQL = tempStrSQL;
    this.myConnection = new SqlConnection(connectionString);
    this.da = new SqlDataAdapter(this.strSQL,this.myConnection);
    this.ds.Clear();
    this.da.Fill(ds,tempTableName);
    return ds;//返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名
    } //数据库数据更新(传DataSet和DataTable的对象)
    public DataSet UpdateDataBase(DataSet changedDataSet,string tableName)
    {
    this.myConnection = new SqlConnection(connectionString);
    this.da = new SqlDataAdapter(this.strSQL,this.myConnection);
    this.sqlCmdBld = new SqlCommandBuilder(da);
    this.da.Update(changedDataSet,tableName);
    return changedDataSet;//返回更新了的数据库表
    }/////////////////////////////////直接操作数据库(未创建该类的实例时直接用)  ///////////////////////////////////////////////////// //检索数据库数据(传字符串,直接操作数据库)
    public DataTable SelectDataBase(string tempStrSQL)
    {
    this.myConnection = new SqlConnection(connectionString);
    DataSet tempDataSet = new DataSet();
    this.da = new SqlDataAdapter(tempStrSQL,this.myConnection);
    this.da.Fill(tempDataSet);
    return tempDataSet.Tables[0];
    } //数据库数据更新(传字符串,直接操作数据库)
    public int UpdateDataBase(string tempStrSQL)
    {
    this.myConnection = new SqlConnection(connectionString);
    //使用Command之前一定要先打开连接,后关闭连接,而DataAdapter则会自动打开关闭连接
    myConnection.Open();
    SqlCommand tempSqlCommand = new SqlCommand(tempStrSQL,this.myConnection);
    int intNumber = tempSqlCommand.ExecuteNonQuery();//返回数据库中影响的行数
    myConnection.Close();
    return intNumber;
    }
      

  3.   

               for (int i = 0; i < this.checkedListBox1.Items.Count; i++)
                {
                   string strCode=checkedListBox1.GetItemText(this.checkedListBox1.Items[i]);
                    if (this.checkedListBox1.GetItemChecked(i) == true)
                    {
                        string strSQL="update ST_Cam set Cam_Flag='1' where  Cam_Code='"+strCode +"'";
                    }
                    else
                    {
                        string strSQL="update ST_Cam set Cam_Flag='1' where  Cam_Code='"+strCode +"'";
                    }
                    //执行strSQL
                }
      

  4.   

           for (int i = 0; i < checkedListBox1.Items.Count; i++)
                {
                    if (checkedListBox1.Items[i].ToString() == "1")
                    {
                        checkedListBox1.SetItemChecked(i, true);                }            }
      

  5.   

    for (int i = 0; i < clb.Item.Count; i++)
    {
    string sql = "update ST_Cam Set Cam_Flag=";
    sql += clb.GetItemChecked(i) ? "1" : "0";
    sql += " Where Cam_Code='" + clb.Items[i].ToString() + "'";
    SqlHelper.ExecuteSql(sql);
    }
      

  6.   

    这个不错,不过这样会增加了服务器的负担!
    请问checkedListBox1的Checked改变时的事件是什么?就是产,我改变一条我就执行一条..但不知事件是什么,ItemCheck事件不行.只有选中才执行的.
      

  7.   


     void ch_ItemCheck(object sender, ItemCheckEventArgs e)
            {
               
            }
      

  8.   

    ItemCheck事件是指定某项属性将要更改,直到事件发生后,该值才会更新
    用这个事件可以啊