الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Master Detailes

مغلق
بدأه server_programmer في 29 أغسطس 2005 · 3 رد · 563 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

مرحبا بكم من جديد يا أخواني و أخواتي في منتدانا الرائع

و مع مشكلة جديدة و عقدة جديدة من عقد البرمجة

انا عندي جدولين Master Detailes

ال Master لنفرض انة يتكون من حقلين و هما

رقم الوثيقة ( تلقائي uniqueidentifier )

تاريخ الوثيقة ( Date )

الجدول ال Detailes

و يحتوي علي

رقم الوثيقة -> مرتبط مع رقم الوثيقة في الجدول ال Master

وصف الوثيقة Char

محتوى الوثيقة Char

أريد أن اعمل الاتي :

1- أنشاء Procedure او Function تقوم بأدخال البيانات في جدول ال Master

2- ترجع لي القيمة التي تم اعتمادها كرقم جديد في حقل رقم الوثيقة في الجدول الMaster

و أريد أن اعرف كيفية قراءة هذة القيمة من داخل ال Visual Studio .NET

أريد مثال كامل للعملية لو ممكن

و دمتم سالمين :rolleyes:

تم تعديل هذه المشاركة بواسطة server_programmer في 29 أغسطس 2005 في 15:16

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#2

ولا يوجد عقد ولا حاجه :D

أنا اللي فهمته منك أنك هتدخل بس تاريخ الوثيقه في جدول الـ Master والرقم سيتولد تلقائيا على أى حال ::

يمكنك انشاء Stored Procedure تأخذ التاريخ فقط وترجع الـ Identity ( آخر رقم تم توليده ) ::

Create Proc InsertIntoMaster @WathiqaDate Datetime
As
Insert into MasterTable (@WathiqaDate)
return @@Identity

ولاستخدامها يمكنك تعريف متغير من نوع int ليستقبل آخر رقم تم توليده الراجع من تنفيذ الـ Procedure ::

Declare @latestID int
exec @latestID = InsertIntoMaster
@WathiqaDate = '1/10/1984'
Print 'MasterTable Contains ' + Convert(varchar(1),@latestID)

ولتنفيذ الـ Procedure بواسطة الفيجوال بيسيك أو السي شارب ::

أنا أفترض أنك قمت بعمل Connection.

قم بعمل Command مثلا SqlCommand واكتب اسم الـ Procedure والـ Connection في الـ Constuctor الخاص به وقم بتحديد نوعه ::

SqlCommand myCommand = new SqlCommand("InsertIntoMaster",myConnection);

// تحدد نوع الـ الكوماند
myCommand.CommandType = CommandType.StoredProcedure;

// تضيف براماتر لتمرير التاريخ
myCommand.Parameters.Add("@WathiqaDate",SqlDbType.DateTime);

// تحدد قيمة هذا البارامتر 
myCommand.Parameters["@WathiqaDate"].Value = "10/10/1984";

//اضافة براماتر آخر لاسترجاع الرقم الذي تم توليده
myCommand.Parameters.Add("@RETURN_VALUE",SqlDbType.Int);
myCommand.Parameters["@RETURN_VALUE"].Direction = ParameterDirection.ReturnValue;

//افتح الكونيكشن
myConnection.Open();

نفذ البروسيديور
myCommand.ExecuteNonQuery();

//اعمل متغير يستقبل آخر رقم تم توليده
int myINT = (int)myCommand.Parameters["@RETURN_VALUE"].Value;

//اقفل الكونكشن 
myConnection.Close();

//شوف انت عاوز تعمل ايه بالمتغير ده

//علي الفولت

//وطي الفولت  :D

بس خلاص ... لو كان الرقم مش بيتولد لوحده ممكن تعدل بعض التعديلات البسيطه في الـ Stored Procedure و في الـ Paramaters.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#3

بحبك يا ستموني :lol:

حجربها و أقولك اية اللي حصل معاي

بس تعرف انت هايل في الشرح

و مشكور جدا جدا جدا على الخدمة السريعة

أنا مقتنع بها منطقيا من قبل التجربة

بس زي ما تعرف

لازم الكمبيوتر يقول صح كمان

أشكرك

:rolleyes:

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

#4

ياااااااااااااااااه

مثال أكثر من رائع

شكرا شكرا شكراااااااااااااااااااا

وفوق كل ذي علم عليم

http://www.leaderstechnology.com

-------------------------------

هذا الموضوع مغلق.

مواضيع مشابهة