السلام عليكم
تضيف العبارة التالية حقلاً نصياً مكوناً من 25 حرفاً يُسمى "الملاحظات" إلى جدول الموظفين:
"Com1.CommandText="ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
والمطلوب ذكر صيغة الكود التى تتحقق من وجود الحقل قبل إضافته للجدول
رجاء وضع مثال إن أمكن يوضح ما سبق
وشكراً جزيلاً
(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
شكراً أخى على ردك
لكن ليس هذا ما أريده
المطلوب ذكر باقى أوامر الموضوع فى هذا المجال أو الإشارة لمرجع فيه
مثلاً العبارة " ALTER TABLE .......... ADD " تضيف حقلاً
لو كان هذا الحقل تم إنشاءه من قبل ، فسوف يحدث خطأ
إذن ما صيغة كود التحقق من وجوده قبل إنشاءه ؟؟؟
جرب هذا الكود لم اقم بتجربته
تمت كتابته على عجاله
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(checkNotesColumnQuery, sqlConnection)
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
أشكرك أخى Kamil على ردك
قاعدة البيانات ليست بـ SQL بل بـ
" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\........... "
سوف أقوم بالتعديل اللازم لاحقاً ربما تنجح التجربة ..
(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(checkNotesColumnQuery, oleDbConnection)
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
تمام
أشكرك على معلوماتك والكود الذى تفضلت بوضعه
لو أمكن أن تدلنى على مرجع شامل بـصيغة PDF يشرح أوامر هذا الجزء
مرحبا بجميع المبرمجين
ويوما سعيدا عليكم إن شاء الله.
استكمالا لهذا الموضوع المفيد والرائع أريد منكم التكرم بوضع كود لتعديل اسم حقل في قاعدة بيانات SQL وكذلك أيضا لقاعدة بيانات Access
لنفترض مثلا :
اسم الحقل القديم cars
ونريد أن نعيد تسميته إلى Planes
واسم الجدول هو Transfers
ولكم جزيل الشكر والتقدير.?
يمكنك استخدام 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 في هذا السياق).
شكرا جزيلاً لك ما قصرت
بارك الله فيك
الآن اكتمل الموضوع
إضافة + حذف + تعديل