以下是我写的方法: 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
{
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
取的时间取他的Value就可以了
给你一个精典操作数据库类。
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;
}
{
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
}
{
if (checkedListBox1.Items[i].ToString() == "1")
{
checkedListBox1.SetItemChecked(i, true); } }
{
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);
}
请问checkedListBox1的Checked改变时的事件是什么?就是产,我改变一条我就执行一条..但不知事件是什么,ItemCheck事件不行.只有选中才执行的.
void ch_ItemCheck(object sender, ItemCheckEventArgs e)
{
}
用这个事件可以啊