2017-01-10 163 views
0

我有几个复选框的界面。 我希望检查数据库中是否有相关值
这是接口我有
Interface如何使用数据库中的数据将值绑定到复选框?

首先对复选框从不同的表加载和盒子内的其他人应该使用另一台被加载。
如果你可以请帮我做到这一点。

此表用于第一4个复选框
1st checkboxes

这是较低的复选框
lower checkboxes

我已创建的查询和数据获取到的数据集的表。
这也是迄今为止

  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 ; 
       } 

      } 
+0

您试过的代码在哪里?并可以请详细说明,因为它很难弄清楚什么条件下的值将检查复选框被检查什么他们之间的映射等等。 – Manish

+0

@Manish我已经添加了我到目前为止所做的代码 – Mike

+0

随着复选框的类型,数据库中的数据应该是布尔值。通常它会自动检查值是否为true。 – ThinhLe

回答

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; 
       } 

      }   

我希望这可能有助于未来某个人。

2

数据库


  • 我已经使用了以下表嗜好与模式作为 如下。启用已禁用的GridView列CheckBoxField字段在ASP.Net

    enter image description here

  • 我已经在表中插入一些记录在ASP.Net

enter image description here

启用GridView中禁用 CheckBoxField字段列
  • HTML标记

下面是ASP.net网页的HTML标记。

正如你所看到的,我添加了一个CheckBoxList和一个Button,它允许用户更新数据库中的选择。

<asp:CheckBoxList ID="chkHobbies" runat="server"> 
</asp:CheckBoxList> 
<br /> 
<asp:Button ID="btnUpdate" runat="server" Text="Button" OnClick = "UpdateHobbies" /> 

下面的屏幕截图说明如何在用户界面看起来

enter image description here

从数据库


下面的方法被用于填充嗜好的CheckBoxList填充的CheckBoxList来自SQL Server数据库 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(); 
    } 
} 

保存选择在数据库


下面的方法被调用时提交按钮的Click事件并用于用户的选择保存到数据库

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 [email protected]"; 
      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(); 
     } 
    } 
} 

当程序首次 When program runs for the first time

运行

更新复选框中的值后。

enter image description here

相关问题