ذخیره تعداد موارد انتخاب شده از ListBox در پایگاه داده با ASP.Net
با سلام این مقله اصول اولیه نحوه ذخیره چندین مورد انتخاب شده از کنترل ListBox رادر پایگاه داده در ASP.Net نشان می دهد. لطفا توجه داشته باشید که این مثال نیاز به دانش اولیه ADO.NET دارد.
مرحله 1: تنظیم رابط کاربر (GUI)
برای سادگی این نسخه ی نمایشی، فرم وب را مانند زیر تنظیم کرده ایم:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Employee Names: <br />
<asp:ListBox ID="ListBox1" runat="server" Height="149px" SelectionMode="Multiple" Width="113px">
<asp:ListItem>Vinz</asp:ListItem>
<asp:ListItem>Jhen</asp:ListItem>
<asp:ListItem>Chris</asp:ListItem>
<asp:ListItem>Shynne</asp:ListItem>
<asp:ListItem>Chu</asp:ListItem>
<asp:ListItem>Mark</asp:ListItem>
<asp:ListItem>Lilian</asp:ListItem>
<asp:ListItem>Rod</asp:ListItem>
<asp:ListItem>Glendzy</asp:ListItem>
</asp:ListBox>
</div>
<br />
<asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />
</form>
</body>
</html>
یادداشت:
* از آنجا که ListBox برای انتخاب چندین مورد در نظر گرفته شده است، ما به ویژگی SelectionMode ListBox چندگانه نیاز داریم .
* برای انتخاب چندگانه در ListBox، فقط کلید Ctrl را نگه دارید و اقلام مورد نظر را انتخاب کنید.
مرحله 2: ایجاد یک جدول پایگاه داده ساده
نام های کارمندان را که از ListBox به پایگاه داده انتخاب شده اند ذخیره می کنیم. بنابراین اجازه دهید در حال حاضر یک جدول ساده ایجاد کنیم که شامل نامهای ستون زیر است:

توجه داشته باشید:
تعیین Id به افزایش خودکار به نحوی که شناسه به صورت خودکار برای هر ردیف جدید اضافه شده است. برای انجام این کار نام ستون "Id" را انتخاب کنید و در ویژگی ستون "مشخصات هویت" را به بله تنظیم کنید.
مرحله 3: اعلام فضاهای نامی لازم
فضاهای نامی زیر را در زیر اضافه کنید:
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Text;
ما باید فضاهای نام را در بالا اعلام کنیم تا بتوانیم از روشهای ساخته شده در SqlClient، StrngCollections و StringBuilder در کد ها استفاده کنیم.
روش 4 : روش ایجاد برای درج چندین مورد .
کد زیر است:
private string GetConnectionString()
{
//Where DBConnection is the connetion string that was set up in the web config file
return System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
}
private void InsertRecords(StringCollection sc)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
StringBuilder sb = new StringBuilder(string.Empty);
foreach (string item in sc)
{
const string sqlStatement = "INSERT INTO Table1 (Employees) VALUES";
sb.AppendFormat("{0}('{1}'); ", sqlStatement, item);
}
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sb.ToString(), conn);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert('Records Successfuly Saved!');", true);
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
StringCollection sc = new StringCollection();
foreach (ListItem item in ListBox1.Items)
{
if (item.Selected)
{
sc.Add(item.Text);
}
}
InsertRecords(sc);
}
همانطور که می بینید، کد بالا بسیار مستقیم است.
مرحله 5: برنامه را کامپایل و اجرا کنید.
خروجی صفحه:

با کلیک بر روی دکمه ذخیره، روش InsertRecords را برای ذخیره سازی موارد انتخاب شده از کنترل ListBox به پایگاه داده اجرا می کند و یک پیام پاپ آپ به شما اطلاع می دهد که "Records successfully Saved"!