البرمجة

تحديث وإدراج البيانات في VB.NET مع SQL Server

في الكود الذي قدمته، يتم استخدام لغة البرمجة VB.NET للتفاعل مع قاعدة البيانات SQL Server. يظهر أنك تقوم بتحديث بيانات في جدول يسمى “MasterVars”. ومع ذلك، هناك بعض الأمور التي يجب مراعاتها لضمان أداء صحيح للتطبيق.

أولاً وقبل كل شيء، يجب التحقق من أن الاتصال بقاعدة البيانات نفسها يتم بنجاح، وذلك باستخدام كود التالي:

vb
If Conn.State = ConnectionState.Closed Then Conn.ConnectionString = "Data Source=SQL01;Initial Catalog=TallySheet;Integrated Security=SSPI;" Conn.Open() End If

ثم يتم إنشاء كائنات SqlCommand وSqlDataAdapter لتنفيذ الاستعلامات على قاعدة البيانات. ولكن يجب التأكد من تحديد اسم الجدول الصحيح في استعلامات SQL الخاصة بك. قد تحتاج أيضًا إلى التحقق من صحة الأعمدة والقيم التي تُدرج في الاستعلام.

فيما يلي مثال للتعديل على الجزء المتعلق بفتح الاتصال وإعداد كائن الأمر:

vb
If Conn.State = ConnectionState.Closed Then Conn.ConnectionString = "Data Source=SQL01;Initial Catalog=TallySheet;Integrated Security=SSPI;" Conn.Open() End If ' تحديث الصف الحالي لتحديد غير فعّال SqlQuery = "Update MasterVars set Active = 0 where PKEY = " & PKEY & ";" Dim MVUpdateCommand As New SqlCommand(SqlQuery, Conn) MVUpdateCommand.ExecuteNonQuery() ' إدراج صف جديد فعّال SqlQuery = "Insert into MasterVars (Vers, Testing, FlatFeeCharge, PrePricingCharge, SendMailAcct, SendMailPW, TestingEmail, PrePricingEmail, ImperataEmail, DTS, UserName, Active) Values (" & "'" & Vers & "', " & Testing & ", '" & FlatFeeCharge & "'" & ", '" & PrepricingCharge & "'" & ", '" & SendMailAcct & "'" & ", '" & SendMailPW & "'" & ", '" & TestingEmail & "'" & ", '" & PrePricingEmail & "'" & ", '" & ImperataEmail & "'" & ", '" & Date.Now & "'," & "'QGDOMAIN\" & Environment.UserName & "'," & 1 & ");" Dim MVInsertCommand As New SqlCommand(SqlQuery, Conn) MVInsertCommand.ExecuteNonQuery()

الآن، يتم تنفيذ الاستعلامات مباشرةً باستخدام ExecuteNonQuery() بدلاً من إنشاء SqlDataAdapter وتعيين أوامر التحديث والإدراج. إذا كنت ما زلت تواجه مشكلة في التحديث، يمكنك استكشاف الأخطاء المحتملة عبر الطباعة أو تسجيل الأخطاء باستخدام مثل Console.WriteLine لفحص معلومات الخطأ.

بالنسبة للسؤال حول إمكانية تبسيط الكود لتمرير كل الاستعلامات في نفس الوقت، يمكنك استخدام عملية الدفع الدفعي (Batch Processing) من خلال تعريف مجموعة من الأوامر وتنفيذها مرة واحدة. ومع ذلك، يجب مراعاة ترتيب الاستعلامات لضمان استمرارية التنفيذ.

المزيد من المعلومات

في السياق البرمجي الذي قدمته، يُستخدم لغة VB.NET للتفاعل مع قاعدة البيانات SQL Server. يُركز الكود على تحديث وإدراج البيانات في جدول يسمى “MasterVars”. سنقوم بتفصيل بعض النقاط الهامة وإضافة مزيد من التوضيح:

  1. تحديث البيانات:
    يتم تحديث البيانات في السجل الحالي من جدول “MasterVars” لتعيين الحقل “Active” إلى 0. الاستعلام يستخدم الشرط where PKEY = PKEY لتحديد السجل المراد تحديثه. يجب التحقق من صحة القيمة المتخذة للمتغير PKEY والتأكد من وجودها في الجدول.

  2. إدراج بيانات جديدة:
    يتم إدراج سجل جديد في الجدول “MasterVars” باستخدام بيانات المتغيرات Vers وTesting وما إلى ذلك. يجب التحقق من أن جميع الأعمدة المستخدمة في الاستعلام موجودة في الجدول وأن الأنواع المستخدمة تتطابق مع القيم المتوقعة.

  3. تحقق من الاتصال بقاعدة البيانات:
    يجب التأكد من أن الاتصال بقاعدة البيانات يتم بنجاح. يُفضل استخدام بنية Using لضمان إغلاق الاتصال بشكل صحيح عند الانتهاء من استخدامه.

vb
Using Conn As New SqlConnection("Data Source=SQL01;Initial Catalog=TallySheet;Integrated Security=SSPI;") Conn.Open() ' تحديث الصف الحالي لتحديد غير فعّال SqlQuery = "Update MasterVars set Active = 0 where PKEY = " & PKEY & ";" Using MVUpdateCommand As New SqlCommand(SqlQuery, Conn) MVUpdateCommand.ExecuteNonQuery() End Using ' إدراج صف جديد فعّال SqlQuery = "Insert into MasterVars (Vers, Testing, FlatFeeCharge, PrePricingCharge, SendMailAcct, SendMailPW, TestingEmail, PrePricingEmail, ImperataEmail, DTS, UserName, Active) Values (" & "'" & Vers & "', " & Testing & ", '" & FlatFeeCharge & "'" & ", '" & PrepricingCharge & "'" & ", '" & SendMailAcct & "'" & ", '" & SendMailPW & "'" & ", '" & TestingEmail & "'" & ", '" & PrePricingEmail & "'" & ", '" & ImperataEmail & "'" & ", '" & Date.Now & "'," & "'QGDOMAIN\" & Environment.UserName & "'," & 1 & ");" Using MVInsertCommand As New SqlCommand(SqlQuery, Conn) MVInsertCommand.ExecuteNonQuery() End Using End Using
  1. تسجيل الأخطاء:
    يفضل تسجيل الأخطاء بشكل دقيق لتحديد مصدر أي مشكلة في التنفيذ. في حالة حدوث أخطاء، يمكنك استخدام Console.WriteLine لطباعة معلومات الخطأ إلى نافذة الإخراج أو تسجيل الأخطاء في ملف سجل للرجوع إليه لاحقًا.

  2. تحقق من قيم المتغيرات:
    تأكد من أن قيم المتغيرات مثل PKEY وVers وTesting وغيرها قيم معقولة ومتوقعة. تحقق من استخدام نوع البيانات الصحيح لكل متغير.

  3. تحديث الواجهة الرسومية:
    يجب أن يتم تحديث الواجهة الرسومية لعرض البيانات الجديدة بعد التحديث. يمكنك إعادة تحميل البيانات أو تحديث العناصر المرتبطة بالواجهة.

  4. تأمين الكود:
    يجب تجنب استخدام الإجراءات التي يمكن أن تؤدي إلى ثغرات أمان، مثل استخدام التركيب النصي المباشر في الاستعلامات. يُفضل استخدام معلمات الاستعلام لتجنب هجمات حقن SQL.

بتنفيذ هذه التحسينات، يمكن أن يزيد من موثوقية التطبيق ويسهم في تحديد مصادر أي مشاكل تحدث خلال التنفيذ.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر