استفاده از CheckBoxList در ذخیره و جمع آوری انتخاب کاربران از پایگاه داده با ASP.Net
با سلام در این مقاله توضیح خواهیم داد که چگونه فایل های ASP.Net CheckBoxList را به پایگاه داده SQL Server ذخیره و بازیابی کنید.
بانک اطلاعاتی
Hobbies زیر را به صورت زیر استفاده کرده ایم.

چندین سوابق را در جدول وارد میکنیم

توجه :
شما می توانید جدول پایگاه داده SQL را با کلیک روی لینک فایل SQL دانلود کنید.
رشته اتصال
هنگامی که پایگاه داده آماده است می توانید رشته اتصال را که برای اتصال به پایگاه داده استفاده می شود ایجاد کنید.
<addname="constr"connectionString="Data Source = .\SQLExpress;
Initial Catalog = dbHobbies; Integrated Security = true"/>
کد HTML
در زیرکد HTML از صفحه وب ASP.net است.
Hobbies:
<asp:CheckBoxList ID="chkHobbies" runat="server">
</asp:CheckBoxList>
<br />
<asp:Button ID="btnUpdate" runat="server" Text="Button" OnClick = "UpdateHobbies" />
همانطور که می بینید، یک CheckBoxList و یک دکمه اضافه کرده ایم که کاربر را قادر می سازد انتخاب ها را در پایگاه داده به روز رسانی کند.
تصویر زیر توضیح می دهد چگونه رابط کاربر به نظر می رسد

جمع آوری CheckBoxList از پایگاه داده
روش زیر برای پر کردن CheckBoxList Hobbies از پایگاه داده 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();
}
}
}
VB.Net
Private Sub PopulateHobbies()
Using conn As New SqlConnection()
conn.ConnectionString = ConfigurationManager _
.ConnectionStrings("constr").ConnectionString()
Using cmd As New SqlCommand()
cmd.CommandText = "select * from hobbies"
cmd.Connection = conn
conn.Open()
Using sdr As SqlDataReader = cmd.ExecuteReader()
While sdr.Read()
Dim item As New ListItem()
item.Text = sdr("Hobby").ToString()
item.Value = sdr("HobbyId").ToString()
item.Selected = Convert.ToBoolean(sdr("IsSelected"))
chkHobbies.Items.Add(item)
End While
End Using
conn.Close()
End Using
End Using
End Sub
روش فوق در رویداد بارگذاری صفحه به روش زیراست
C #
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.PopulateHobbies();
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Me.PopulateHobbies()
End If
End Sub
صرفه جویی در انتخاب در پایگاه داده
درروش زیر رویداد Click Button را کلیک کنید و برای ذخیره انتخاب کاربر به پایگاه داده مورد استفاده قرار می گیرد
C #
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();
}
}
}
VB.Net
Protected Sub UpdateHobbies(ByVal sender As Object, ByVal e As EventArgs)
Using conn As New SqlConnection()
conn.ConnectionString = ConfigurationManager _
.ConnectionStrings("constr").ConnectionString
Using cmd As New SqlCommand()
cmd.CommandText = "update hobbies set IsSelected = " & _
"@IsSelected where HobbyId=@HobbyId"
cmd.Connection = conn
conn.Open()
For Each item As ListItem In chkHobbies.Items
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@IsSelected", item.Selected)
cmd.Parameters.AddWithValue("@HobbyId", item.Value)
cmd.ExecuteNonQuery()
Next
conn.Close()
End Using
End Using
End Sub
به این ترتیب در این روش می توانید از CheckBoxList برای پر کردن و ذخیره تنظیمات یا انتخاب های کاربر در پایگاه داده استفاده کنید.