تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] إضافة أو حذف حقل فى قاعدة بيانات باستخدام كود VB.net
#1
السلام عليكم


تضيف العبارة التالية حقلاً نصياً مكوناً من 25 حرفاً يُسمى "الملاحظات" إلى جدول الموظفين:

"Com1.CommandText="ALTER TABLE Employees ADD COLUMN Notes TEXT(25)

والمطلوب ذكر صيغة الكود التى تتحقق من وجود الحقل قبل إضافته للجدول

رجاء وضع مثال إن أمكن يوضح ما سبق
وشكراً جزيلاً
الرد }}}
تم الشكر بواسطة:
#2
(14-12-23, 04:45 PM)AmeenRashed كتب :
السلام عليكم


تضيف العبارة التالية حقلاً نصياً مكوناً من 25 حرفاً يُسمى "الملاحظات" إلى جدول الموظفين:

"Com1.CommandText="ALTER TABLE Employees ADD COLUMN Notes TEXT(25)

والمطلوب ذكر صيغة الكود التى تتحقق من وجود الحقل قبل إضافته للجدول

رجاء وضع مثال إن أمكن يوضح ما سبق
وشكراً جزيلاً


علي حسب نوع قاعدة البيانات المستخدمة ... 
Database Schema 
تحتوي علي Tables and Views
كل Table له Schema 
كل Table_Schema عبارة عن جدول يحتوي علي معلومات مثلا
Column_Name - DateCreated - .... - etc
الرد }}}
تم الشكر بواسطة:
#3
شكراً أخى على ردك
لكن ليس هذا ما أريده
المطلوب ذكر باقى أوامر الموضوع فى هذا المجال أو الإشارة لمرجع فيه
مثلاً العبارة " ALTER TABLE .......... ADD " تضيف حقلاً
لو كان هذا الحقل تم إنشاءه من قبل ، فسوف يحدث خطأ
إذن ما صيغة كود التحقق من وجوده قبل إنشاءه ؟؟؟
الرد }}}
تم الشكر بواسطة:
#4
جرب هذا الكود لم اقم بتجربته 

تمت كتابته على عجاله

PHP كود :
Imports System.Data.SqlClient

' قم بتعديل اسم الخادم وقاعدة البيانات ومعلومات الاتصال وفقاً لبيئتك
Dim connectionString As String = "Data Source=اسم_الخادم;Initial Catalog=اسم_قاعدة_البيانات;Integrated Security=True"
Dim sqlConnection As New SqlConnection(connectionString)

Try
    sqlConnection.Open()

    ' 
افحص ما إذا كان الحقل "الملاحظات" موجودًا في جدول الموظفين
    Dim checkNotesColumnQuery 
As String "SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Employees' AND COLUMN_NAME = 'Notes'"
 
   Dim sqlCommandCheckNotesColumn As New SqlCommand(checkNotesColumnQuerysqlConnection)

 
   Dim notesColumnCount As Integer Convert.ToInt32(sqlCommandCheckNotesColumn.ExecuteScalar())

 
   ' إذا لم يكن الحقل موجودًا، قم بإضافته
    If notesColumnCount = 0 Then
        Dim addNotesColumnQuery As String = "ALTER TABLE Employees ADD COLUMN Notes NVARCHAR(25)"
        Dim sqlCommandAddNotesColumn As New SqlCommand(addNotesColumnQuery, sqlConnection)
        sqlCommandAddNotesColumn.ExecuteNonQuery()
    End If

    Console.WriteLine("تمت إضافة الحقل بنجاح أو الحقل موجود بالفعل.")

Catch ex As Exception
    Console.WriteLine("حدث خطأ: " & ex.Message)

Finally
    sqlConnection.Close()
End Try 
الرد }}}
تم الشكر بواسطة: AmeenRashed
#5
أشكرك أخى Kamil على ردك
قاعدة البيانات ليست بـ SQL بل بـ
" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\........... "
سوف أقوم بالتعديل اللازم لاحقاً ربما تنجح التجربة ..
الرد }}}
تم الشكر بواسطة:
#6
(23-12-23, 03:33 PM)AmeenRashed كتب : أشكرك أخى Kamil  على ردك
قاعدة البيانات ليست بـ SQL بل بـ
" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\........... "
سوف أقوم بالتعديل اللازم  لاحقاً  ربما تنجح التجربة ..

العقو اخي العزيز

هذا الكود البديل

PHP كود :
Imports System.Data.OleDb

' قم بتعديل اسم قاعدة البيانات ومعلومات الاتصال وفقاً لبيئتك
Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=مسار_قاعدة_البيانات.accdb;"
Dim oleDbConnection As New OleDbConnection(connectionString)

Try
    oleDbConnection.Open()

    ' 
افحص ما إذا كان الحقل "الملاحظات" موجودًا في جدول الموظفين
    Dim checkNotesColumnQuery 
As String "SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Employees' AND COLUMN_NAME = 'Notes'"
 
   Dim oleDbCommandCheckNotesColumn As New OleDbCommand(checkNotesColumnQueryoleDbConnection)

 
   Dim notesColumnCount As Integer Convert.ToInt32(oleDbCommandCheckNotesColumn.ExecuteScalar())

 
   ' إذا لم يكن الحقل موجودًا، قم بإضافته
    If notesColumnCount = 0 Then
        Dim addNotesColumnQuery As String = "ALTER TABLE Employees ADD COLUMN Notes NVARCHAR(25)"
        Dim oleDbCommandAddNotesColumn As New OleDbCommand(addNotesColumnQuery, oleDbConnection)
        oleDbCommandAddNotesColumn.ExecuteNonQuery()
    End If

    Console.WriteLine("تمت إضافة الحقل بنجاح أو الحقل موجود بالفعل.")

Catch ex As Exception
    Console.WriteLine("حدث خطأ: " & ex.Message)

Finally
    oleDbConnection.Close()
End Try 
الرد }}}
تم الشكر بواسطة: AmeenRashed
#7
تمام
أشكرك على معلوماتك والكود الذى تفضلت بوضعه
لو أمكن أن تدلنى على مرجع شامل بـصيغة PDF يشرح أوامر هذا الجزء
الرد }}}
تم الشكر بواسطة:
#8
مرحبا بجميع المبرمجين
ويوما سعيدا عليكم إن شاء الله. 
استكمالا لهذا الموضوع المفيد والرائع أريد منكم التكرم بوضع كود لتعديل اسم حقل في قاعدة بيانات SQL وكذلك أيضا لقاعدة بيانات Access
لنفترض مثلا :
اسم الحقل القديم cars
ونريد أن نعيد تسميته إلى Planes
واسم الجدول هو  Transfers
ولكم جزيل الشكر والتقدير.?
الرد }}}
تم الشكر بواسطة:
#9
يمكنك استخدام SqlCommand لتنفيذ استعلام SQL في قاعدة بيانات SQL Server، واستخدام OleDbCommand لتنفيذه في Microsoft Access. 

إليك كيفية تنفيذ العملية في كل منهم:

PHP كود :
Imports System.Data.SqlClient

' قم بتغيير معلومات الاتصال والاستعلام ونوع الحقل إذا لزم الأمر
Dim connectionString As String = "Data Source=اسم_الخادم;Initial Catalog=اسم_قاعدة_البيانات;Integrated Security=True"
Dim query As String = "EXEC sp_rename '
Transfers.cars', 'Planes', 'COLUMN';"

Using connection As New SqlConnection(connectionString)
    connection.Open()
    Using command As New SqlCommand(query, connection)
        command.ExecuteNonQuery()
    End Using
End Using 
PHP كود :
Imports System.Data.OleDb

' قم بتغيير معلومات الاتصال والاستعلام ونوع الحقل إذا لزم الأمر
Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=مسار_قاعدة_البيانات.accdb;"
Dim query As String = "ALTER TABLE Transfers CHANGE COLUMN cars Planes INTEGER;"

Using connection As New OleDbConnection(connectionString)
    connection.Open()
    Using command As New OleDbCommand(query, connection)
        command.ExecuteNonQuery()
    End Using
End Using 

يرجى تغيير معلومات الاتصال في connectionString بناءً على نوع قاعدة البيانات التي تستخدمها (SQL Server أو Microsoft Access) وتعديل استعلام query حسب احتياجاتك. يتوجب عليك أيضًا التأكد من أن النوع الحالي للحقل cars هو متوافق مع النوع الذي تريد تغييره إليه (Planes في هذا السياق).
[صورة مرفقة: images?q=tbn:ANd9GcT72OLJW7D1E5QW-HUeWeJ...TGoNeg2jnQ]
الرد }}}
#10
شكرا جزيلاً لك ما قصرت
بارك الله فيك
الآن اكتمل الموضوع
إضافة + حذف + تعديل
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: