أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية تحديث قاعدة بيانات من كائن بيانات باستخدام Visual C# 2005 أو Visual C#.NET

هام: تمت ترجمة هذه المقالة باستخدام برامج مايكروسوفت للترجمة الآلية ومن المحتمل ان يتم تحريرها او تدقيقها بعد ذلك من خلال تكنولوجيا منصة مجموعات الترجمة(CTF) او من خلال مترجم بشري. تقدم لك شركة مايكروسوفت هذه المقالات المترجمة بشكل آلي او بالترجمة البشرية او بعد تحريرها وتدقيقها من قبل مجموعات الترجمة حتى تمكنكم من الوصول إلى جميع المقالات الموجودة في قواعد المعرفة لديها بلغات مختلفة. إلا أن المقالات المترجمة قد تحتوي على أخطاء في المفردات او بناء الجمل او النحو. وعليه، فإن شركة مايكروسوفت ليست مسؤولة عن اية أخطاء او عدم دقة في الترجمة او أية أضرار قد تحدث نتيجة أخطاء في ترجمة محتويات النص او استخدامه من قبل العملاء.

اضغط هنا لرابط المقالة باللغة الانجليزية307587
للحصول على إصدار Microsoft Visual Basic.NET من هذه المقالة، راجع 301248.
للحصول على إصدار Microsoft Visual c + +.NET من هذه المقالة، راجع 815660.

تشير هذه المقالة إلى مكتبة فئات Microsoft.NET Framework مساحات الأسماء التالية:
  • System.Data
  • System.Data.SqlClient
الموجز
يوضح هذا المقال خطوة بخطوة كيفية الحصول على مجموعة البيانات الذي يحتوي على البيانات (الذي يتم تحميله من قاعدة بيانات)، وكيفية تعديل البيانات، ثم كيفية إرسال إلى قاعدة البيانات لتحديث المصدر الأصلي.

كائنات DataSet ، جزءا رئيسيا من الوصول إلى البيانات في Microsoft.NET Framework، هي كائنات يمكن أن الجداول وطرق العرض والعلاقات في الذاكرة.

متطلبات

توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة وحزم الخدمات التي تحتاجها:
  • نظام التشغيل Microsoft Windows Server 2003، 2000Professional Microsoft Windows، Microsoft Windows 2000 Server أو Microsoft Windows 2000 أدفانسيدسيرفير ملقم Microsoft Windows NT 4.0
  • نموذج Microsoft SQL Server الإصدار 7.0 أو Microsoft SQL Server2000 أو مشغل البيانات ل Microsoft (MSDE) بالحانات داتاباسينستاليد
  • Microsoft Visual Studio 2005 أو Microsoft Visual Studio.NET
تفترض هذه المقالة أنك على دراية بالمواضيع التالية:
  • قاعدة بيانات المصطلحات
  • لغة الاستعلام الهيكلية (SQL)

كيفية تحديث قاعدة بيانات من كائن البيانات

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

لمساعدتك على فهم هذه المقالة، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
314145 كيفية تعبئة كائن بيانات من قاعدة بيانات باستخدام Visual C#.NET
بعض المواضيع التي تتناولها 314145 تتضمن كيفية استرداد بيانات من قاعدة بيانات و مجموعة بيانات، وما مجموعة بيانات منفصلة ومتميزة من قاعدة البيانات.

بعد تحميل مجموعة البيانات ، يمكنك تعديل البيانات. وسيتتبع DataSet هذه التغييرات. ويمكن اعتبار في ذاكرة تخزين مؤقت للبيانات التي تم استردادها من قاعدة بيانات الكائن DataSet . الكائن DataSet يحتوي على مجموعة من الجداول والعلاقات، والقيود.

لتحديث مجموعة البيانات وإرسال هذه التحديثات مرة أخرى إلى قاعدة البيانات، اتبع هذه الخطوات:
  1. بدء تشغيل Visual Studio 2005 أو Visual Studio.NET.
  2. إنشاء "تطبيق" وحدة تحكم جديد في Visual C#. فيسوالستوديو إنشاء "فئة ثابتة" بشكل افتراضي وإجراء main () فارغ.
  3. تأكد من أن المشروع يحتوي على مرجع إلى مساحات الأسماء و نظامSystem.Data . استخدام عبارة using على مساحات الأسماء النظامو System.DataSystem.Data.SqlClient حيث غير مطلوبة لتأهيل ديكلاراتيونسفروم مساحات الأسماء لاحقاً في التعليمات البرمجية الخاصة بك. يجب استخدام بريورتو عبارات هذه التعريفات الأخرى.
    using System;using System.Data;using System.Data.SqlClient;					
  4. قبل أن يمكنك تعديل البيانات وإرسال بكتو تغييرات قاعدة البيانات، يجب تحميل المعلومات إلى DataSet. لمعرفة الإجراء مفصلة، راجع314145. لتجنب الازدواجية، التعليمات البرمجية في هذا ستبس لم تعرض بالتفصيل.

    سلسلة الاتصال في نقاط فولووينجكودي إلى ملقم SQL موجود على الكمبيوتر المحلي (أو ثيكومبوتير حيث يتم تشغيل التعليمات البرمجية) لتلخيص، إنشاء اتصال، أندثين محول بيانات يتم إنشاء، الذي يستخدم لتعبئة مجموعة البيانات بالبيانات.
    ملاحظة يجب تغيير<strongpassword> كلمة المرور و "معرف المستخدم" <username>إلى القيم الصحيحة قبل تشغيل هذه التعليمات البرمجية. تأكد من أن معرف ثاتوسير لديه الأذونات المناسبة لإنجاز هذه العملية على الحكم. </username></strongpassword>
    string sConnectionString;// Modify the following string to correctly connect to your SQL Server.sConnectionString = "Password=<strong password>;User ID=<username>;"	+ "Initial Catalog=pubs;"	+ "Data Source=(local)";SqlConnection objConn	= new SqlConnection(sConnectionString);objConn.Open();// Create an instance of a DataAdapter.SqlDataAdapter daAuthors 	= new SqlDataAdapter("Select * From Authors", objConn);// Create an instance of a DataSet, and retrieve data from the Authors table.DataSet dsPubs = new DataSet("Pubs");daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");daAuthors.Fill(dsPubs,"Authors");					
  5. والآن بعد أن يتم تحميل البيانات، يمكنك تعديله. هناك طرق أرماني لإضافة صف (أو سجل). يستخدم نموذج التعليمات البرمجية هذا ستيبروسيدوري ثلاثة:
    • الحصول على كائن DataRow جديد من DataTable.
    • تعيين قيم الحقل DataRow حسب الضرورة.
    • تمرير الكائن الجديد في أسلوب إضافة مجموعة DataTable.Rows .
    قم بلصق التعليمة البرمجية التالية بعد التعليمات البرمجية في الخطوة 4:
    //****************// BEGIN ADD CODE // Create a new instance of a DataTable.DataTable tblAuthors;tblAuthors = dsPubs.Tables["Authors"];DataRow drCurrent;// Obtain a new DataRow object from the DataTable.drCurrent = tblAuthors.NewRow();// Set the DataRow field values as necessary.drCurrent["au_id"] = "993-21-3427";drCurrent["au_fname"] = "George";drCurrent["au_lname"] = "Johnson";drCurrent["phone"] = "800 226-0752";drCurrent["address"] = "1956 Arlington Pl.";drCurrent["city"] = "Winnipeg";drCurrent["state"] = "MB";drCurrent["contract"] = 1;// Pass that new object into the Add method of the DataTable.tblAuthors.Rows.Add(drCurrent);Console.WriteLine("Add was successful, Click any key to continue!!");Console.ReadLine();// END ADD CODE  					
  6. لتحرير الصفوف الموجودة، الحصول على كائن DataRow المناسب، ثم قم بتوفير القيم الجديدة لعمود واحد أو أكثر. رسومالتوصيل أولاً تجد الصف الصحيح، من السهل قمت بتحميل ثيشيما الجدول، بالإضافة إلى البيانات (استدعاء FillSchema في الخطوة رقم 4). يعرف الجدول مع المخطط في المكان، مفتاحه الأساسي هو ويتشكولومن، وتتوفر طريقة البحث عن مجموعة صفوف .

    إرجاع الأسلوب البحث عن الكائن DataRow مع قيمة معينة في مفتاحه الأساسي (في هذه الحالة، au_id). بعد أن DataRow، يمكنك تعديل الأعمدة. لم يتم التفاف ثيموديفيكيشنز في BeginEdit و EndEdit، ولكن هذا بتسهيل عمل أن DataSet القيام به وتسمح مجموعة البيانات لإجراء عمليات التحقق من صحة الخاص به في نفس الوقت عند استدعاء EndEdit . قم بلصق التعليمة البرمجية التالية بعد التعليمات البرمجية لإضافة:
    //*****************// BEGIN EDIT CODE drCurrent = tblAuthors.Rows.Find("213-46-8915");drCurrent.BeginEdit();drCurrent["phone"] = "342" + drCurrent["phone"].ToString().Substring(3);drCurrent.EndEdit();Console.WriteLine("Record edited successfully, Click any key to continue!!");Console.ReadLine();// END EDIT CODE  					
  7. لتحديث قاعدة البيانات الأصلية مع كل هذه التغييرات، تمرير مجموعة البيانات في أسلوب تحديث الكائن DataAdapter .

    ومع ذلك، قبل استدعاء التحديث، يجب تعيين خصائص الكائن DataAdapterInsertCommandو UpdateCommandDeleteCommand . يمكنك كتابة SQL وملء هذه ثريبروبيرتيس مع كائنات SqlCommand المطابق يدوياً، ولكن يمكنك أيضا استخدام Visual Studio.NET للأوامر الثلاثة جينيراتيثيسي تلقائياً.

    لإنشاء كوماندسوهين المطلوبة عند الحاجة إليها، يجب إنشاء مثيل للكائن SqlCommandBuilder واستخدام DataAdapter في الدالة الإنشائية. إذا كنت تريد استخدام هذا الأسلوب، الذي إيسيلوستراتيد في نموذج التعليمات البرمجية لمتابعة، يجب أن يكون لديك إينفورماتيونافايلابل المفتاح الأساسي للجدول. للوصول إلى معلومات المفتاح الأساسي، استدعاء FillSchema، وقم بتعيين خاصية ميسينجشيماكشن الخاصة بك DataAdapterأدويثكيي، أو يدوياً بتعيين المفتاح الأساسي في التعليمات البرمجية الخاصة بك. قم بلصق التعليمات البرمجية thefollowing بعد تحرير التعليمات البرمجية:
    //*****************// BEGIN SEND CHANGES TO SQL SERVER SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daAuthors);daAuthors.Update(dsPubs, "Authors");Console.WriteLine("SQL Server updated successfully, Check Server explorer to see changes");Console.ReadLine();// END SEND CHANGES TO SQL SERVER					
  8. لحذف صف تماما، استخدم طريقة حذف الكائن DataRow . لاحظ أن يحتوي على مجموعة صفوف أسلوبين، إزالة و RemoveAt، التي يبدو أن حذف الصف ولكن بدلاً من ذلك إزالة رووفروم المجموعة فقط. يرسل فقط حذف الأسلوب الحذف الخاص بك إلى قاعدة بيانات المصدر. قم بلصق التعليمات البرمجية thefollowing بعد التعليمات البرمجية لإرسال التغييرات إلى ملقم SQL:
    //*****************//BEGIN DELETE CODE drCurrent = tblAuthors.Rows.Find("993-21-3427");drCurrent.Delete();Console.WriteLine("Record deleted successfully, Click any key to continue!!"); Console.ReadLine();//END DELETE CODE 					
  9. إرسال التغييرات إلى ملقم SQL لإزالة ثاتيو سجل بإضافتها سابقا. قم بلصق التعليمة البرمجية التالية بعد حذف التعليمات البرمجية:
    //*****************// CLEAN UP SQL SERVERdaAuthors.Update(dsPubs, "Authors");Console.WriteLine("SQL Server updated successfully, Check Server explorer to see changes");Console.ReadLine();					
  10. حفظ المشروع الخاص بك.
  11. في القائمة " تصحيح "، انقر فوق بدء تشغيل المشروع. لاحظ أن تظهر عدة مربعات الرسائل، التي تشير إلى التقدم المحرز في التعليمات البرمجية وتسمح بمراجعة الحالة الحالية البيانات أثناء تقدم العمل في التعليمات البرمجية.

إتمام سرد التعليمات البرمجية

using System;using System.Data;using System.Data.SqlClient;namespace PopulateDataSet{    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {        static void Main(string[] args)        {            string sConnectionString;            // Modify the following string to correctly connect to your SQL Server.            sConnectionString = "Password=;User ID=sa;"                + "Initial Catalog=pubs;"                + "Data Source=(local)";            SqlConnection objConn                = new SqlConnection(sConnectionString);            objConn.Open();            // Create an instance of a DataAdapter.            SqlDataAdapter daAuthors                 = new SqlDataAdapter("Select * From Authors", objConn);            // Create an instance of a DataSet, and retrieve             // data from the Authors table.            DataSet dsPubs = new DataSet("Pubs");            daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");            daAuthors.Fill(dsPubs,"Authors");             //****************            // BEGIN ADD CODE             // Create a new instance of a DataTable.            DataTable tblAuthors;            tblAuthors = dsPubs.Tables["Authors"];            DataRow drCurrent;            // Obtain a new DataRow object from the DataTable.            drCurrent = tblAuthors.NewRow();            // Set the DataRow field values as necessary.            drCurrent["au_id"] = "993-21-3427";            drCurrent["au_fname"] = "George";            drCurrent["au_lname"] = "Johnson";            drCurrent["phone"] = "800 226-0752";            drCurrent["address"] = "1956 Arlington Pl.";            drCurrent["city"] = "Winnipeg";            drCurrent["state"] = "MB";            drCurrent["contract"] = 1;            // Pass that new object into the Add method of the DataTable.            tblAuthors.Rows.Add(drCurrent);            Console.WriteLine("Add was successful, Click any key to continue!!");            Console.ReadLine();            // END ADD CODE               //*****************            // BEGIN EDIT CODE             drCurrent = tblAuthors.Rows.Find("213-46-8915");            drCurrent.BeginEdit();            drCurrent["phone"] = "342" + drCurrent["phone"].ToString().Substring(3);            drCurrent.EndEdit();            Console.WriteLine("Record edited successfully, Click any key to continue!!");            Console.ReadLine();			            // END EDIT CODE               //*****************            // BEGIN SEND CHANGES TO SQL SERVER             SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daAuthors);            daAuthors.Update(dsPubs, "Authors");            Console.WriteLine("SQL Server updated successfully, Check Server explorer to see changes");            Console.ReadLine();			            // END SEND CHANGES TO SQL SERVER             //*****************            //BEGIN DELETE CODE             drCurrent = tblAuthors.Rows.Find("993-21-3427");            drCurrent.Delete();            Console.WriteLine("SRecord deleted successfully, Click any key to continue!!");             Console.ReadLine();                   //END DELETE CODE              //*****************            // CLEAN UP SQL SERVER            daAuthors.Update(dsPubs, "Authors");            Console.WriteLine("SQL Server updated successfully, Check Server explorer to see changes");            Console.ReadLine();         				        }    }}				
مراجع
لمزيد من المعلومات حول استخدام ADO.NET DataSet الكائنات و SQL، قم بزيارة مواقع Microsoft التالية على الويب:
الغوص في "الوصول إلى البيانات" (عمود أصوات MSDN )
http://msdn2.microsoft.com/en-us/library/ms810288.aspx
مركز مطوري MSDN على إنترنت.NET
http://msdn2.microsoft.com/en-us/netframework/default.aspx

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 307587 - آخر مراجعة: 10/28/2013 23:29:00 - المراجعة: 7.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbhowtomaster kbsqlclient kbsystemdata kbmt KB307587 KbMtar
تعليقات