كيفية: إنشاء واستخدام بيانات مكتوبة باستخدام Visual C#.NET

ملخص

يوضح هذا المقال كيفية إنشاء واستخدام مجموعة البيانات مكتوبة في تطبيق ويب صغير. إنشاء كتابة مجموعات البياناتالتي ترث من فئة DataSet ، أعضاء مجموعة البياناتالخاصة DataTables و داتاكولومنس، مما أسفر عن العديد من الفوائد التي تأتي مع استخدام قوي من الدرجة الأولى.

متطلبات

تصف العناصر التالية في الأجهزة الموصى بها، البنية الأساسية للشبكة، المهارات والمعارف والبرامج حزم الخدمة التي يتعين عليك استكمال هذه الخطوات:
  • Microsoft SQL Server 6.5 (أو الأحدث) مع قاعدة بيانات Northwind
السابقة المهارات المطلوبة:
  • الإلمام العام باستخدام Microsoft SQL Server
  • الإلمام العام باستخدام Microsoft Visual Studio.NET
  • الإلمام العام باستخدام Microsoft ADO.NET
  • الإلمام العام "عناصر ويب" Microsoft.NET

مجموعات البيانات المكتوبة

اتبع هذه الخطوات لإنشاء تطبيق ويب صغير باستخدام Visual Studio.NET. يستخدم تطبيق ويب مجموعة بيانات مكتوبة لعرض النتائج من استعلام SQL مرتجلة في قاعدة بيانات Northwind.
  1. بتشغيل Visual Studio.NET.
  2. إنشاء مشروع "تطبيق ويب" جديد باسم المواد الصلبة الذائبة في Visual C#.NET.
  3. تأكد من أنه يتم عرض "مستكشف الحلول". إذا لم يتم عرض "مستكشف الحلول"، اضغط CTRL + ALT + L.
  4. تأكد من أن الملف WebForm1.aspx مفتوح في نافذة المحرر. إذا لم يكن الملف مفتوحاً، انقر نقراً مزدوجاً فوق WebForm1.aspx في "مستكشف الحلول" لفتح الملف.
  5. ضمن إطار "محرر"، انقر فوق تصميم للتبديل إلى طريقة عرض التصميم.
  6. لفتح شريط الأدوات، اضغط CTRL + ALT + X. في مربع الأدوات، انقر فوق نماذج ويب. حدد واسحب التالية إلى الزاوية اليسرى العليا للصفحة: اثنان صفوف كل تسمية متبوعاً بمربع نص (وضع إلى يمين كل تسمية). ضمن هذه، قم بإضافة DataGrid بنفس الطريقة.
  7. انقر فوق تسمية أفضل. اضغط F4 لعرض نافذة الخصائص. تغيير خاصية Text المنتج. انقر فوق تسمية أخرى ثم قم بتغيير الخاصية Text الخاصة به إلى الفئة.
  8. لإضافة بيانات جديدة إلى المشروع، اضغط CTRL + SHIFT + A ومن ثم انقر فوق مجموعة البيانات في قائمة القوالب. قم بتسمية مجموعة البيانات التالية: dsProducts.xsd. لاحظ أن الملف هو في الواقع مخطط XML. انقر فوق موافق. يمكنك الآن رؤية صفحة أصفر باهت في نافذة المحرر.
  9. لإنشاء مجموعة بياناتمكتوبة، اضغط CTRL + ALT + S لفتح "مستكشف الملقم".
  10. انقر فوق الخوادمانقر فوق اسم الكمبيوتر، انقر فوق سقلسيرفيرس، انقر فوق اسم الملقم، انقر فوق Northwindوثم انقر فوق طرق عرض.
  11. حدد طريقة عرض Northwind SQL Server قائمة أبجدية للمنتجات، وثم اسحب طريقة العرض إلى الصفحة DataSet أصفر باهت. يظهر تمثيل مرئي لمجموعة النتائج التي يتم إنشاؤها بواسطة طريقة العرض على الصفحة. لمشاهدة XML الفعلي لملف المخطط، انقر فوق الزر XML ضمن إطار محرر.
  12. يوجد مخطط استناداً إلى كائن ملقم SQL الآن. لإنشاء وتعبئة مجموعة البياناتمكتوبة، أولاً يجب إنشاء الفئة يتم تعيينه إلى المخطط. زر الماوس الأيمن فوق طريقة عرض التصميم، ومن ثم تأكد من تحديد الخيار إنشاء DataSet . إذا لم يكن محدداً، حدد. اضغط على CTRL + S لحفظ المخطط وإنشاء الفئة.
  13. لعرض الفئة DataSet مكتوب الجديدة، انقر فوق إظهار كافة الملفات في "مستكشف الحلول".
  14. قم بتوسيع الشجرة إلى جانب dsProducts.xsd. راجع ملف dsProducts.vb يحتوي على تعيين فئة جديدة للمخطط. كما تشاهد ملف dsProducts.xsx الذي يتم استخدامه لتتبع التغييرات إلى الملفات.
  15. لكتابة تعليمات برمجية لعرض مجموعة بياناتمكتوبة، انقر نقراً مزدوجاً فوق "نموذج ويب" (وليس على عنصر تحكم ويب) مباشرة. يظهر codebehind "نموذج ويب"، ونقطة الإدراج داخل حدث Page_Load .
  16. لتضمين الفئات الموجودة في مساحة الاسم System.Data.SqlClient، إضافة العبارة التالية استخدام أعلى codebehind:
    using System.Data.SqlClient;
    ملاحظة: مساحات الأسماء الأخرى التي يكون لديك لتطبيق ويب هذا صغير يتم تلقائياً المشار إليها في المشروع عند إنشاء تطبيق ويب في Visual Studio.NET.

  17. في إجراء حدث Page_Load ، إنشاء كائن اتصال بتمرير سلسلة الاتصال إلى المنشئ الافتراضي للفئة SqlConnection :
    SqlConnection cn = new SqlConnection("server=myserver;uid=myuid;pwd=mypassword;database=northwind");
  18. إنشاء كائن SqlCommand ثم يتم تمرير كائن SqlDataAdapter. تمرير عبارة SQL مرتجلة وكائن الاتصال الجديد منشئ SqlCommand. الأول تعيين الخاصية CommandText من كائن SqlCommand جديد. يمكنك أيضا تمرير اسم إجراء مخزن.
    SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
  19. إنشاء مثيل للكائن SqlDataAdapter، تمرير كائن SqlCommand الجديد المنشئ:
    SqlDataAdapter da = new SqlDataAdapter(cmd);
  20. الآن يمكنك إنشاء الكائنات المطلوبة للاتصال بقاعدة بيانات وإرجاع البيانات. ما يلي هو رمز ل مجموعة البياناتالمكتوبة. لاحظ أنه يتم إنشاء مثيل لفئة دسبرودوكتس : الفئة بتعيين دسبرودوكتس المخطط ويرث من فئة مجموعة البيانات ، لا بيانات الفئة العامة نفسها.
    dsProducts tds = new dsProducts();
  21. استدعاء الأسلوب تعبئة SqlDataAdapter، تمرير في كائن مجموعة البيانات المكتوبة و مجموعة البياناتلكتابة اسم جدول DataTable الخاصية:
    da.Fill(tds, tds.Tables[0].TableName);
  22. لتعيين خاصية Text لعناصر تحكم مربع النص إلى أعمدة مكتوبة في مكتوب DataSetالخاصة DataTable، استخدم التنسيق التالي:
    dsProducts.DataTableName[RowIndex].ColumnName
    لتطبيق هذا النموذج، يتم رووينديكس مضمنة إلى 5:
    TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 

    لأن مجموعة الصفوف إلى الصفر، عند تحميل الصفحة، لاحظ أن عناصر تحكم مربع نص عرض أسماء المنتجات والفئات العنصر في الصف السادس من DataGrid.
  23. لعرض كافة النتائج في DataGrid، تعيين الخاصية DataSource الخاص ب DataGrid إلى مكتوبة جديدة مجموعة البياناتثم استدعاء DataBind():
    DataGrid1.DataSource = tds;DataGrid1.DataBind();

أكمل رمز إدخالات القوائم (WebForm1.aspx)

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TDS.WebForm1" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Label id="Label1" runat="server" >Label</asp:Label>
<asp:DataGrid id="DataGrid1" runat="server" ></asp:DataGrid>
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Label id="Label2" runat="server" >Label</asp:Label>
</form>
</body>
</HTML>

أكمل رمز إدخالات القوائم (WebForm1.aspx.cs)

using System.Data.SqlClient;
namespace TDS
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection cn = new SqlConnection("server=localhost;uid=sa;pwd=abcd;database=northwind");
SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
dsProducts tds = new dsProducts();

da.Fill(tds, tds.Tables[0].TableName);
TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName;

DataGrid1.DataSource = tds;
DataGrid1.DataBind();

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.TextBox1.TextChanged += new System.EventHandler(this.TextBox1_TextChanged);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}


التحقق من الصحة

اضغط F5 لتشغيل تطبيق ويب. يعرض المستعرض "كمثرى عمه بوب المجففة العضوية" في مربع النص المنتج و "المنتجات" في مربع نص الفئة . تظهر شبكة معبأة بمعلومات المنتج ضمن مربعات النص.

استكشاف الأخطاء وإصلاحها

  • لا تتطلب عام مجموعات البيانات تمرير اسم جدول عند استدعاء أسلوب التعبئة . كتابة مجموعات البيانات، ومع ذلك، تتطلب ذلك، حتى إذا كنت تتصل مجموعة البياناتفي جدول المجموعة بالفهارس بدلاً من اسم جدول. عدم إقرار مكتوب DataSet اسم جدول يطرح مشكلة "لم يكن هناك صف في موضع 0" في وقت التشغيل. هذا المتطلب مكتوب DataSets أيضا الوسائل التي لا تشكل الخاص بك اسم جدول ولكن يجب أن تجتاز الذي يشار إليه في فئة DataSet مكتوب الذي يتم الوصول إليه كما هو موضح في التعليمات البرمجية السابقة.
  • تتم الكتابة فوق التغييرات اليدوية التي تجريها على المخطط الذي تم إنشاؤه بواسطة Visual Studio.NET إذا قمت بتغيير كائن قاعدة البيانات المستخدمة لإنشاء المخطط في البداية وكتابة فئة DataSet واسحبه مرة أخرى إلى طريقة عرض التصميم للمخطط. فمن الأفضل بشكل عام لجعل التغييرات التي يلزم على مستوى Microsoft SQL Server وإنشاء جديدة مكتوب DataSet من لتغيير مخطط الناتجة.

المراجع

لمزيد من المعلومات حول العمل باستخدام مجموعة بياناتمكتوبة، راجع موقع Microsoft التالي على الويب:


خصائص

رقم الموضوع: 320714 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات