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

طريقة إعطاء قيمة لبارامتر من datetimepicker و من combobox

بدأه omar1978 في 17 مايو 2010 · 10 رد · 943 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأستاذ المهندس : حسام فيصل

السلام عليكم ورحمة الله وبركاته

أعرف أني أثقلت عليك وعلى أعضاء المنتدى بالأسئلة ولكن ليس لي أحد سواكم لمساعدتي في مشروعي

السؤال هو :

لدي stored procedure له الصيغة التالية :

ALTER procedure [dbo].[browsereport] @period nvarchar(50),

@wardia_date nvarchar(50)

as

select machinename,machine_status,machine_notice from wardiatable

where period=@period and wardia_date=@wardia_date

ولدي الكود التالي :

sqlCommand1.Connection = sqlConnection1;

sqlCommand1.CommandType = CommandType.StoredProcedure;

sqlCommand1.CommandText = "browsereport";

SqlParameter p1 = new SqlParameter("@period", SqlDbType.NVarChar, 50);

sqlCommand1.Parameters.Add(p1);

SqlParameter p2 = new SqlParameter("@wardia_date", SqlDbType.NVarChar, 50);

sqlCommand1.Parameters.Add(p2);

sqlCommand1.Parameters.Clear();

sqlConnection1.Open();

p1.Value = comboBox1.SelectedIndex.ToString();

p2.Value = dateTimePicker1.Value.ToLongDateString();

SqlDataAdapter da = new SqlDataAdapter(sqlCommand1.CommandText, sqlConnection1);

da.Fill(dataset1, "wardiatable");

dataGridView1.DataSource = dataset1;

dataGridView1.DataMember = "wardiatable";

وعند التنفيذ واختيار متحول الفترة من combobox و متحول التاريخ من datetimepicker تظهر الرسالة التالية :

Procedure or function 'browsereport' expects parameter '@period', which was not supplied

علماً أنه عندما أقوم بتنفيذ الإجراء من الداتا بيز يعمل بشكل نظامي وعندما أستدعيه من البرنامج تظهر الرسالة السابقة

الرجاء مساعدتي ولكم جزيل الشكر

#2

أيها الأخوة الكرام أعضاء هذا المنتدى الغالي

الرجاء الرجاء الرد على سؤالي فأنا في المراحل الأخيرة من البرنامج وأريد تسليمه إلى إدارة الشركة بسرعة

أنتظر ردكم ولكم جزيل الشكر

#3

آخي الكريم عمر (كما يظهر لي من عضويتك ) :

قد آجبتك عن جزء من هذا السؤال في موضوع سابق ، لذلك أتمنى منك أن تعود وتقرأه وتتمعن فييه ، فمشكلتك بسيطة جداً :) .

المشكلة أن أنك تقوم بعملية Clear أي مسح للبارمترات بعد أن تقوم بإضافتها ، أي أنك لم تستفد شيئاً من إضافتها ... عملية Clear تتم قبل الإضافة و ليس بعدها :) .. بسيطة أليس كذلك ؟

أي الكود الذي لديك يصبح :

sqlCommand1.CommandText = "browsereport";
sqlCommand1.Parameters.Clear();
SqlParameter p1 = new SqlParameter("@period", SqlDbType.NVarChar, 50);
sqlCommand1.Parameters.Add(p1);
SqlParameter p2 = new SqlParameter("@wardia_date", SqlDbType.NVarChar, 50);
sqlCommand1.Parameters.Add(p2);
#4

أستاذ حسام

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

ثانياً : لقد جربت الكود الذي قدمته لي ولم تحل المشكلة وبقيت نفس الرسالة تظهر عند التنفيذ

الرجاء إذا كان هناك احتمال آخر أن تزودني به

ملاحظة : عندما أضع في الإجراء عند تعريف المتحول مثلاً @period=null تختفي هذه الرسالة ولكن تظهر فقط عناوين الأعمدة في datagridview ولا تظهر القيم

ولك جزيل الشكر

#5

هل يمكنك إرفاق ملف الكود ؟

#6

أستاذ حسام الغالي

شكراً لك مرة أخرى على تفاعلك وتجاوبك

هذا هو ملف الكود الذي طلبته

شكراً لك مرة أخرى

BrowseReport.cs

#7

يبدو أنك كنت تنسى آسطراً من الكود :mad: ، أليس كذلك ؟

مثلاُ

p1.Direction = ParameterDirection.Output;

و

p2.Direction = ParameterDirection.Output;

وهما خاطئان تماماً ، لأن المتحولات كما تظهر في الإجرائية هي متحولات دخل و ليس خرج :) ..

أي أن تصحيح هذا السطرين هو :

p1.Direction =ParameterDirection.Input ;
p2.Direction =ParameterDirection.Input ;

لي طلب بسيط :

قم بزيارة إلى منتدى ADO.net و إطلع على الدورس المقدمة هناك و منها هذا الدرس رابطي

هناك ستجد معلومات كثيرة حول إستخدام ADO.net ...

بالتوفيق

#8

أستاذ حسام الغالي

لقد جربت الحل الذي قدمته لي ولا تزال المشكلة قائمة

ملاحظة : قمت بتجريب جميع الحلول التي قدمتها لي حتى الآن قبل أن أرسل لك مشكلتي ولكن لم تنجح

بصراحة أنا لم أعد أعرف أين المشكلة لأني قمت أيضاً بالبحث في المنتديات الأجنبية ولم أعثر على الجواب الشافي

شكراً لك مرة أخرى على مساعدتك لي وإذا كان لديك أي مقترح آخر الرجاء أن تزودني به وجزاك الله كل خير

#9

آخي الكريم :

الحلول التي قدمتها لك كأنت لإصلاح الآسطر في الكود الي كنت تقدمه و كانت للآسف آخطاء كارثية ...

مع أنني لا آحب تقديم الحلول الجاهزة ولكن آرفق ملف الكود الجديد مع الفورم وسكربت إنشاء الجداول لآقوم بتجربته كاملاً و سنرى ماهي المشكلة ...

#10

أستاذ حسام صباح الخير

أنا آسف لأني لم استطع إرفاق جميع الملفات لأني أنت عارف وضع النت عنا

أرفق لك ملف الكود الجديد وملف الفورم أما تصميم الجدول فله الشكل التالي :

اسم الجدول wardiatable ويتضمن الأعمدة التالية :

wardia_table_ID(PK,int,notnull)

wardianumber(int,notnull)

period(nvarchar(50),notnull)

wardia_date(nvarchar(50),notnull)

wardiamanager(nvarchar(50),notnull)

machinename(nvarchar(200),notnull)

machine_status(nvarchar(50),notnull)

machine_notice(nvarchar(500),null)

أرجو منك المساعدة وجزاك الله كل خير

New Folder.rar

#11

الرجاء من أعضاء المنتدى الغالي الرد على سؤالي

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…