我有一个带有几个复选框的界面。 我希望检查数据库中是否有相关值 这是我的界面
首先要从另一个表中加载复选框,并使用另一个表加载框内的其他复选框 如果可以,请帮助我这样做。
我创建了查询并将数据传输到数据集。
这是我到目前为止所做的代码
id | user_from | message
----+-----------+---------
7 | user2 | doc
5 | user3 | nice
6 | user4 | cana
答案 0 :(得分:3)
<强>数据库强>
我已经将下表的爱好与架构一起使用了 如下。在ASP.Net中的GridView中启用禁用的CheckBoxField列
我已经在表中启用了禁用的几条记录 ASP.Net中GridView中的CheckBoxField列
以下是ASP.net网页的HTML标记。
正如您所看到的,我添加了一个CheckBoxList和一个Button,允许用户更新数据库中的选择。
<asp:CheckBoxList ID="chkHobbies" runat="server">
</asp:CheckBoxList>
<br />
<asp:Button ID="btnUpdate" runat="server" Text="Button" OnClick = "UpdateHobbies" />
下面的屏幕截图描述了用户界面的外观
从数据库填充CheckBoxList
以下方法用于从SQL Server数据库填充Hobbies CheckBoxList 的 C#强>
private void PopulateHobbies()
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select * from hobbies";
cmd.Connection = conn;
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
ListItem item = new ListItem();
item.Text = sdr["Hobby"].ToString();
item.Value = sdr["HobbyId"].ToString();
item.Selected = Convert.ToBoolean(sdr["IsSelected"]);
chkHobbies.Items.Add(item);
}
}
conn.Close();
}
}
}
以下方式在页面加载事件中调用上述方法: -
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.PopulateHobbies();
}
}
保存数据库中的选择
以下方法在提交按钮点击事件上调用,用于将用户选择保存到数据库
protected void UpdateHobbies(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "update hobbies set IsSelected = @IsSelected" +
" where HobbyId=@HobbyId";
cmd.Connection = conn;
conn.Open();
foreach (ListItem item in chkHobbies.Items)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IsSelected", item.Selected);
cmd.Parameters.AddWithValue("@HobbyId", item.Value);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
}
更新复选框中的值。
答案 1 :(得分:1)
我已经解决了问题,这是代码。
List<int> list = new List<int>();
foreach (DataRow dr in ds.Tables[0].Rows)
{
list.Add(Convert.ToInt32(dr["Qulif_code"]));
}
int[] arr = list.ToArray();
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == 1)
{
ck_ol.Checked = true;
}
else if (arr[i] == 2)
{
ck_al.Checked = true;
}
else if (arr[i] == 3)
{
ck_dip.Checked = true;
}
else if (arr[i] == 4)
{
ck_deg.Checked = true;
}
}
我希望这可能对将来有所帮助。