منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مطلوب إضافة حقل بجدول بعد التأكد من عدم وجوده
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

الموضوغ سبق وأن طلبت حل له
واعتقد أن الأوامر تنحصر فى الإستخدام الصحيح لأوامر  SQL  وبالذات فى استخدام Select


المطلوب التحقق برمجياً من وجود الحقل abc فى الجدول school

وفى حالة عدم وجوده يتم إنشاءه بالأمر  alter وإسناد القيمة XYZ له فى سطر برمجى واحد




كود :
           
           com_gn.CommandText = ("alter TABLE school add column abc text(6)")  ' إضافة حقل غير موجود
           com_gn.ExecuteNonQuery()
           com_gn.CommandText = ("update school set demo=false ,  abc='" & "XYZ" & "'")
           com_gn.ExecuteNonQuery()
           
و عليكم السلام ورحمة الله و بركاته
الكود اللذي كتبته هو المطلوب لاتمام المطلوب.
بقي كود التحقق و له عدة طرق :
1- تكتب Function يستعلم عن هذا الحقل فان عاد بخطا تنفذ اجراء الانشاء.
2- تستخدم اجراء GetSchema وتسند له اسم الجدول .
اذا تريد مثال اكتب رد.
أخى justforit
شكراً لتفضلك بالرد
فى انتظار أمثلتك بخصوص ما تم طلبه
[attachment=29557]
عملت مثال حاولت فيه ان يكون مرن لتعرف فكرة الكود
شكراً على المثال
سوف اقوم بدراسته غداً

وإن كنت أتمنى أن يكون الموضوع أبسط من ذلك
فقد رأيت فى أحد الأمثلة _ وقد نسيت أين _
أن صاحبه يتأكد من وجود الحقل من خلال تعليمة Select

عموماً أشكرك على تعبك ومبادرتك
(17-05-24, 09:56 PM)AmeenRashed كتب : [ -> ]شكراً على المثال
سوف اقوم بدراسته غداً

وإن كنت أتمنى أن يكون الموضوع أبسط من ذلك
فقد رأيت فى أحد الأمثلة _ وقد نسيت أين _
أن صاحبه يتأكد من وجود الحقل من خلال تعليمة Select

عموماً أشكرك على تعبك ومبادرتك

انا عملت الطريقة الخاصة بـ GetSchema
بقى كود الاستعلام عن عمود غير موجود باذن الله اعدل على المثال.

هذا اسهل شيء عرفته :
PHP كود :
Imports System.Data.OleDb
Public Class Form1
    Dim db 
As String IO.Path.GetDirectoryName(Application.ExecutablePath) & "\db1.mdb"
 
   Dim str As String "provider=microsoft.jet.oledb.4.0;data source=" db
    Dim con 
As New OleDbConnection(str)
 
   Dim dt As New DataTable
    Private 
Function isfound(col As Stringtbl As String) As Boolean
        dt
.Clear()
 
       If con.State ConnectionState.Closed Then con.Open()
 
       Using cm As New OleDbCommand(""con)
 
           cm.CommandText "select * from " tbl
            dt
.Load(cm.ExecuteReader)
 
           Return dt.Columns.Contains(col)
 
       End Using
    End 
Function
 
   Private Sub btncheck_col_Click(sender As ObjectAs EventArgsHandles btncheck_col.Click
        MsgBox
(isfound(txtcol.Texttxttbl.Text))
 
   End Sub
End 
Class 

الملف مرفق بدون كود اضافة فقط كود التحقق و ذلك عن طريق اولا تعبئة DataTable من نتيجة استعلام ثم التحقق هل الجدول المؤقت يحتوي عمود باسم مرسل؟
بحثت بقوقل عن ابسط كود وتفاجات انك قد سالت قبل السؤال نفسه ووجدت اجابات ممتازة.