我有一个CheckBox的表格,它被插入到SQL数据库中'1'和'0'。但是,我想通过加载事件再次检索这些值,但我无法获取它们。这是我的代码:从SQL数据库中读取ASP.Net中的CheckBox值?
private void getAuditChecklist()
{
SqlCommand cmd = null;
string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string queryString = @"SELECT Mount, Braker, Access, Conn_Net, Log_Book, Pictures, Floor, Cb_Lenght, Channel FROM AUDITOR_CHECKLIST " +
"WHERE SITE_ID = @SiteID";
using (SqlConnection connection =
new SqlConnection(conn))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
cmd = new SqlCommand(queryString);
cmd.Connection = connection;
cmd.Parameters.Add(new SqlParameter("@SiteID", //the name of the parameter to map
System.Data.SqlDbType.NVarChar, //SqlDbType value
20, //The width of the parameter
"SITE_ID")); //The name of the column source
//Fill the parameter with the value retrieved
//from the text field
cmd.Parameters["@SiteID"].Value = foo.Site_ID;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
CheckBox1.Checked = (reader.GetBoolean(reader.GetOrdinal("Mount")));
CheckBox2.Checked = (reader.GetBoolean(reader.GetOrdinal("Braker")));
CheckBox3.Checked = (reader.GetBoolean(reader.GetOrdinal("Access")));
CheckBox4.Checked = (reader.GetBoolean(reader.GetOrdinal("Conn_Net")));
CheckBox5.Checked = (reader.GetBoolean(reader.GetOrdinal("Log_Book")));
CheckBox6.Checked = (reader.GetBoolean(reader.GetOrdinal("Pictures")));
CheckBox8.Checked = (reader.GetBoolean(reader.GetOrdinal("Floor")));
CheckBox9.Checked = (reader.GetBoolean(reader.GetOrdinal("Cb_lenght")));
CheckBox10.Checked = (reader.GetBoolean(reader.GetOrdinal("Channel")));
}
reader.Close();
}
}
我错过了从sql db中得到复选标记?下面是如何插入到SQL中:
private void SaveAuditChecklist()
{
if (auditChecklist != null)
{
SqlCommand cmd = null;
string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string queryString = @"INSERT INTO AUDITOR_CHECKLIST VALUES(" +
"@SiteID, @Mount, @Braker, @Access, @ConnNet, @LogBook, @Pictures, @Floor, @CbLenght, @Channel) ";
using (SqlConnection connection =
new SqlConnection(conn))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
cmd = new SqlCommand(queryString);
cmd.Connection = connection;
cmd.Parameters.Add(new SqlParameter(
"@SiteID", //the name of the parameter to map
System.Data.SqlDbType.NVarChar, //SqlDbType value
20, //The width of the parameter
"Site_ID")); //The name of the column source
//Fill the parameter with the value retrieved
//from the text field
cmd.Parameters["@SiteID"].Value = foo.Site_ID;
cmd.Parameters.Add(new SqlParameter("@Mount", SqlDbType.Bit));
cmd.Parameters["@Mount"].Value = CheckBox1.Checked;
cmd.Parameters.Add(new SqlParameter("@Braker", SqlDbType.Bit));
cmd.Parameters["@Braker"].Value = CheckBox2.Checked;
cmd.Parameters.Add(new SqlParameter("@Access", SqlDbType.Bit));
cmd.Parameters["@Access"].Value = CheckBox3.Checked;
cmd.Parameters.Add(new SqlParameter("@ConnNet", SqlDbType.Bit));
cmd.Parameters["@ConnNet"].Value = CheckBox4.Checked;
cmd.Parameters.Add(new SqlParameter("@LogBook", SqlDbType.Bit));
cmd.Parameters["@LogBook"].Value = CheckBox5.Checked;
cmd.Parameters.Add(new SqlParameter("@Pictures", SqlDbType.Bit));
cmd.Parameters["@Pictures"].Value = CheckBox6.Checked;
cmd.Parameters.Add(new SqlParameter("@Floor", SqlDbType.Bit));
cmd.Parameters["@Floor"].Value = CheckBox8.Checked;
cmd.Parameters.Add(new SqlParameter("@CbLenght", SqlDbType.Bit));
cmd.Parameters["@CbLenght"].Value = CheckBox9.Checked;
cmd.Parameters.Add(new SqlParameter("@Channel", SqlDbType.Bit));
cmd.Parameters["@Channel"].Value = CheckBox10.Checked;
cmd.ExecuteReader();
}
}
}
你不为其他复选框读回值。你如何设定其他复选框? – Steve 2013-04-25 17:09:52
好吧,为了在这个例子中保存文本,我只做了第一个CheckBox。我认为,下一个复选框的代码(读者)将会是相同的。 – Jacman 2013-04-25 17:17:56