بسم الله الرحمن الرحيم
عند عمل انسيرت لسجل جديد في قاعدة بيانات من نوع SQL Server كيف يمكن معرفة رقم ID للسجل الجديد مع العلم أن ID ترقيم تلقائي؟؟
طبعا المشروع asp.net
مع شكري للجميع ،،،
تم الوصول للحل والحمد لله في الكود التالي
PHP كود :
dim conn as sqlconnection("your connection string")
dim cmd as new sqlcommand("Insert into Documents (col1,col2,col3) output INSERTED.id values(val1,val2,val3)",conn)
conn.open()
dim NewId as integer = cmd.ExecuteScalar
conn.close()
cmd=nothing
وجزاكم الله خير
سهل الحبيب طبعا اذا معك ID تلقائي وتريد تعرفة علي سبيل المثال في data grid
تسوي هذا في زر البحث
SQLTsalary = "SELECT * FROM Tsalary WHERE Namestaff LIKE '%" & TxTSearch.Text & "%'"
DataSetTsalary.Clear()
Conn.Open()
Dim DataAdapterTsalary As New OleDbDataAdapter(SQLTsalary, Conn)
DataAdapterTsalary.Fill(DataSetTsalary, "Tsalary")
Conn.Close()
HideTxtID.DataBindings.Clear()
HideTxtID.DataBindings.Add("Text", DataSetTsalary, "Tsalary.ID")
GVTeachers.DataSource = DataSetTsalary
GVTeachers.DataMember = "Tsalary"
GVTeachers.Refresh()
ملاحظة الكود الاسفل سوتلك مثال اذا تريدة يظهر اسم الموظف او تريد تخفيه
GVTeachers.Columns(0).Visible = False او GVTeachers.Columns(0).HeaderText = "رقم الموظف تلقائي"
GVTeachers.Columns(1).HeaderText = "رقم الموظف"
GVTeachers.Columns(2).HeaderText = "اسم الموظف"
تعريفات الاكود وهوه كتالي :
Tsalary اسم جدول قاعده البيانات
Columns(2).HeaderText في هذا تعريف للخلايا الموجوده في data grid ولزم تعرف رقم متسلسل للخلية مثلا 1 او 2 ووووالخ
TxTSearch اسم text لي تريد تبحث فية
DataSetTsalary اسم ديتا المستخدمة
HideTxtID طبعا هذا اسم اي اسم تقدر تسمية وتستخدمة لسحب رقم متسلسل
GVTeachers اسم data grid
وشكرا التمني فهمت
اشكرك أخي الكريم..
ولكن سؤالي هو اني اذا عملت إنسيرت لسجل جديد كيف أعرف رقم ID الذي سوف يأخذه في الداتابيز؟؟
بعد تحديث البيانات (استيراد)،
سيكون آخر سجل في قاعدة البيانات هو آخر سجل تم اضافته، مالم يكن هناك (Sort) أو (Filter).
*أنا استخدم الربط عن طريق المعالج.
(20-04-17, 09:28 PM)اليوم مبتدئة وغداً محترفة كتب : [ -> ]بسم الله الرحمن الرحيم
عند عمل انسيرت لسجل جديد في قاعدة بيانات من نوع SQL Server كيف يمكن معرفة رقم ID للسجل الجديد مع العلم أن ID ترقيم تلقائي؟؟
طبعا المشروع asp.net
مع شكري للجميع ،،،
ماهو كود الانسيرت ليتم تعديله ؟
بطريقة سهلة سيكون maxID+1
لكن لا ينفع اذا كان التطبيق مستخدم في اكثر من جهاز بوقت واحد
اما اذا كان تطبيق عام او له اكثر من مستخدم ممكن يدخلوا في وقت واحد فيوجد استعلام يعيد الرقم الجديد بعد الادخال
اعتقد موجود في احد مشاركات المنتدى
كل الشكر لكم جميعا
وجدت الحل في الكود الاتي
PHP كود :
dim conn as sqlconnection("your connection string")
dim cmd as new sqlcommand("Insert into Documents (col1,col2,col3) output INSERTED.id values(val1,val2,val3)",conn)
conn.open()
dim NewId as integer = cmd.ExecuteScalar
conn.close()
cmd=nothing
حيث نتلقى قيمة Id الجديدة في المتغير NewId
وهذا حل آخر (SqlServer)
PHP كود :
Dim cmd As New SqlCommand("INSERT INTO [Documents] ([col1],[col2],[col3]) VALUES (val1,val2,val3); SELECT @@IDENTITY;",conn)
حسنا افدتمونا جزاكم الخير اذا كانت نوع الحق كويد كيف يتم معرفة الكويد للسجل الجديد علما اننا نستخدم دالة داخل سكول
وهذه الدالة (newid()) وهذا نوع الحقل uniqueidentifier