جلب ١٠ اسطر من قاعدة البيانات - Rabeea Qbaha - 20-06-19
أواجة مشكلة غريبة ممكن من الضغط هناك شيء خاطئ ولم اشاهد
احوال جلب ١٠ اسطر من قاعدة البيانات فقط
لكن عند استخام الكود تجلب جميع الاسطر ولا اعرف ما السبب
هذا الكود المستعمل :
PHP كود :
// method to fill GV from database private void fill_GV() { try {
if (_con.con.State == ConnectionState.Closed) { _con.con.Open(); }
query2 = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; ds2.Clear(); dt2.Rows.Clear();
DataAdapter2 = new OleDbDataAdapter(query2, _con.con); DataAdapter2.Fill(ds2, "cust"); DataAdapter2.Fill(dt2);
_con.con.Close();
GV2.DataSource = ds2.Tables[0]; GV2.Refresh();
GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
RE: جلب ١٠ اسطر من قاعدة البيانات - asemshahen5 - 20-06-19
PHP كود :
string query2 = "Select TOP (10) [ID], [cname] from [cust] ORDER BY cdate DESC"; ds2.Clear(); dt2.Clear(); DataAdapter2 = new OleDbDataAdapter(query2, _con.con); DataAdapter2.Fill(ds2, "cust"); dt2 = ds2.Tables["cust"];
RE: جلب ١٠ اسطر من قاعدة البيانات - Rabeea Qbaha - 20-06-19
شكرا جزيلا اخي على الرد
قمت بتجربة هذا من قبل لكن اواجة هذا الخطاء
إقتباس :System.Data.OleDb.OleDbException: 'The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.'
مع العلم ان الكود يعمل اذا قمت بازاله الترتيب ORDER BY cdate DESC
RE: جلب ١٠ اسطر من قاعدة البيانات - sary - 20-06-19
(20-06-19, 04:48 AM)Rabeea Qbaha كتب : أواجة مشكلة غريبة ممكن من الضغط هناك شيء خاطئ ولم اشاهد
احوال جلب ١٠ اسطر من قاعدة البيانات فقط
لكن عند استخام الكود تجلب جميع الاسطر ولا اعرف ما السبب
هذا الكود المستعمل :
PHP كود :
// method to fill GV from database private void fill_GV() { try {
if (_con.con.State == ConnectionState.Closed) { _con.con.Open(); }
query2 = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; ds2.Clear(); dt2.Rows.Clear();
DataAdapter2 = new OleDbDataAdapter(query2, _con.con); DataAdapter2.Fill(ds2, "cust"); DataAdapter2.Fill(dt2);
_con.con.Close();
GV2.DataSource = ds2.Tables[0]; GV2.Refresh();
GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
تعديل
PHP كود :
// method to fill GV from database private void fill_GV() { try { string sql = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(sql, _con.con); if(da.Fill(dt)>0) { GV2.DataSource = dt; GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
أقواس رقم TOP تستخدم معقاعدة بيانات إسكيوإل وليس أكسس
RE: جلب ١٠ اسطر من قاعدة البيانات - Rabeea Qbaha - 20-06-19
(20-06-19, 07:15 AM)sary كتب : (20-06-19, 04:48 AM)Rabeea Qbaha كتب : أواجة مشكلة غريبة ممكن من الضغط هناك شيء خاطئ ولم اشاهد
احوال جلب ١٠ اسطر من قاعدة البيانات فقط
لكن عند استخام الكود تجلب جميع الاسطر ولا اعرف ما السبب
هذا الكود المستعمل :
PHP كود :
// method to fill GV from database private void fill_GV() { try {
if (_con.con.State == ConnectionState.Closed) { _con.con.Open(); }
query2 = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; ds2.Clear(); dt2.Rows.Clear();
DataAdapter2 = new OleDbDataAdapter(query2, _con.con); DataAdapter2.Fill(ds2, "cust"); DataAdapter2.Fill(dt2);
_con.con.Close();
GV2.DataSource = ds2.Tables[0]; GV2.Refresh();
GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
تعديل
PHP كود :
// method to fill GV from database private void fill_GV() { try { string sql = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(sql, _con.con); if(da.Fill(dt)>0) { GV2.DataSource = dt; GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
أقواس رقم TOP تستخدم معقاعدة بيانات إسكيوإل وليس أكسس
عند ازاله الاقواس يقوم بجلب جميع البيانات
RE: جلب ١٠ اسطر من قاعدة البيانات - wared - 21-06-19
(20-06-19, 04:48 AM)Rabeea Qbaha كتب : أواجة مشكلة غريبة ممكن من الضغط هناك شيء خاطئ ولم اشاهد
احوال جلب ١٠ اسطر من قاعدة البيانات فقط
لكن عند استخام الكود تجلب جميع الاسطر ولا اعرف ما السبب
هذا الكود المستعمل :
PHP كود :
// method to fill GV from database private void fill_GV() { try {
if (_con.con.State == ConnectionState.Closed) { _con.con.Open(); }
query2 = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; ds2.Clear(); dt2.Rows.Clear();
DataAdapter2 = new OleDbDataAdapter(query2, _con.con); DataAdapter2.Fill(ds2, "cust"); DataAdapter2.Fill(dt2);
_con.con.Close();
GV2.DataSource = ds2.Tables[0]; GV2.Refresh();
GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
(20-06-19, 07:34 PM)Rabeea Qbaha كتب : (20-06-19, 07:15 AM)sary كتب : (20-06-19, 04:48 AM)Rabeea Qbaha كتب : أواجة مشكلة غريبة ممكن من الضغط هناك شيء خاطئ ولم اشاهد
احوال جلب ١٠ اسطر من قاعدة البيانات فقط
لكن عند استخام الكود تجلب جميع الاسطر ولا اعرف ما السبب
هذا الكود المستعمل :
PHP كود :
// method to fill GV from database private void fill_GV() { try {
if (_con.con.State == ConnectionState.Closed) { _con.con.Open(); }
query2 = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; ds2.Clear(); dt2.Rows.Clear();
DataAdapter2 = new OleDbDataAdapter(query2, _con.con); DataAdapter2.Fill(ds2, "cust"); DataAdapter2.Fill(dt2);
_con.con.Close();
GV2.DataSource = ds2.Tables[0]; GV2.Refresh();
GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
تعديل
PHP كود :
// method to fill GV from database private void fill_GV() { try { string sql = "Select TOP 10 [ID], [cname] from [cust] ORDER BY cdate DESC"; DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(sql, _con.con); if(da.Fill(dt)>0) { GV2.DataSource = dt; GV2.Columns[0].Visible = false; GV2.Columns[1].HeaderText = "اسم الزبون"; GV2.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } }
أقواس رقم TOP تستخدم معقاعدة بيانات إسكيوإل وليس أكسس
عند ازاله الاقواس يقوم بجلب جميع البيانات
(لست مبرمج #C)
تأكد من أنه لا يوجد استعلام آخر يتم تنفيذه.
RE: جلب ١٠ اسطر من قاعدة البيانات - ابراهيم ايبو - 21-06-19
السلام عليكم اخي ربيع ورحمة الله وبركاته
اخي الكود التالي اجلب به الحقول لخمس سجلات ولا مشكلة به بدون ان استخدم الاقواس
ربما المشكلة عندك بحقل التاريخ
كود :
//-----------public void SelectAll-----------
public void SelectAll_Personal()
{
try
{
DataTable Dt = new DataTable();
OleDbDataAdapter Da = new OleDbDataAdapter();
Dt.Clear();
//Da = new OleDbDataAdapter("Select * From Personal", con);// جلب كل البيانات
Da = new OleDbDataAdapter("select TOP 5 * From Personal ORDER BY ID_Ex DESC", con); // استعلام اعلى اي دي لخمس سجلات
Da.Fill(Dt);
Dgv_Table.DataSource = Dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
RE: جلب ١٠ اسطر من قاعدة البيانات - elgokr - 21-06-19
اخى الفاضل Rabeea Qbaha
لا يوجد فرق فى الطريقة بين vb.net وكذلك c#
الكود واحد فى امر الاستعلام
ولكن ما يجب الانتباه اليه هو كيفية استدعاء الـ Function
لان من الواضح انك كتبت هذا الـ Function ولكن عند التنفيذ تستدعى Function
اخر يحتوى على استعلام جلب كامل الجدول
وتذكر اولاً لا تستخدم try داخل الـ Function كما مشار فى الكود الخاص بك
كل ما عليك استخدامه عند مناداه الـ Function اى داخل الحدث نفسه
ثانياً لا تجعل كلاً من DT أو DS خارج الـ Function ومن ثم مناداته وتفريغه
يفضل ان تجعله بداخل الـ Function حتى لا تجبر على استخدام سطر التفريق والمسح
ويكون الشكل مثل
كود :
DataTable DT = new DataTable();
حتى يهيئ لنفسه كونه جديد لا يحتوى على اى شئ وزو قيمة فارغة
بدلاً من استخدامه بهذا الشكل
وينطبق الامر مع DS
تحياتى لك
وتمنياتى لك التوفيق
RE: جلب ١٠ اسطر من قاعدة البيانات - Rabeea Qbaha - 21-06-19
شكرا جميعا على التفاعل
اخي الجوكر لدي استفسار بسيط :
لماذا لا اقوم باستخدام try في ال function ??
إقتباس :ثانياً لا تجعل كلاً من DT أو DS خارج الـ Function ومن ثم مناداته وتفريغه
يفضل ان تجعله بداخل الـ Function حتى لا تجبر على استخدام سطر التفريق والمسح
انا اقوم بتعريفهم في اول الكود لاني استخدمهم باكثر من function
و ايضا استخدمهم في الخارج لكي استطيع التحكم بعدد الاسطر في ال gridview
وتقسيمها الى صفحات.
على كل حال ساقوم بادراج المشروع في قسم المشاريع والامثلة
وساكون ممنون لكم لو اخذت بعض النصائح
RE: جلب ١٠ اسطر من قاعدة البيانات - elgokr - 22-06-19
(21-06-19, 10:49 PM)Rabeea Qbaha كتب : لماذا لا اقوم باستخدام try في ال function ??
وظيفة الـ Try هو تصحيح الخطاء عند التنفيذ
و الـ function ليس تنفيذ بال استدعاء
والتنفيذ هو الحدث الفعلى مثل حدث الزر عند الكليك
فهنا عليك جعل الـ Try بداخله فقط
تعال اعمل كود به خطاء مثل ادخال قيمة نص لـ رقم
فى اى حدث وبدون استخدام try
وسط الرسالة الخطاء ستجد فى التفاصيل انه
يشير ان السطر رقم كذا يحتوى على الخطاء
طيب تعال كده نعمل نفس الفكرة بس القيمة ترسل الى الـ function
وبدون استخدام Try واستدعاء الـ function فى الحدث والاختبار
ستجد انه يشير ان الخطاء فى السطر رقم كذا خاص الحدث
ومن ثم يشير ان الخطاء تابع لمنادا function فى السطر كذا
فتخيل انه اشار بعد ما وضح ان الخطاء فى سطر محدد فى الحدث نفسه
وافادك بعد ذلك فى بان الخاطء ناتج لـ function فى السطر كذا
فهنا عند استخدام Try فى function فوجوده كعدمه لان الـ function
ما هو الا مرحلة ثانية فهنا من يظهر لك الخطاء هو الحدث
نفسه فلذلك من الافضل الاستخدام خارج function
ويتم الاستخدام فى الحدث فقط
(21-06-19, 10:49 PM)Rabeea Qbaha كتب : إقتباس :ثانياً لا تجعل كلاً من DT أو DS خارج الـ Function ومن ثم مناداته وتفريغه
يفضل ان تجعله بداخل الـ Function حتى لا تجبر على استخدام سطر التفريق والمسح
انا اقوم بتعريفهم في اول الكود لاني استخدمهم باكثر من function
و ايضا استخدمهم في الخارج لكي استطيع التحكم بعدد الاسطر في ال gridview
وتقسيمها الى صفحات.
هذا خطاء فادح جداً
انت عامل الـ function لتعبئة DT
ومن ثم تاتى داخل الحدث تقوم بتعبئة الـ DT بـ DT خاص الـ function
تخيل انك عامل DT وبتقوم تعبئتها نفسها اللى موجوده فى function
والمشكلة الاكبر لو انت بتقوم بتفريغها فى الحدث قبل تعبئتها من نفسها
ومشاكل من هذه القبائل
من الصح ان التعريف الـ DT الرئيسي للحدث الفعلى فقط
انما كلاً من function يحتوى على DT معرف به خاص به فقط
لان كما اشرت مسبقاً بان الـ function
هو عبارة عن ملخص يقوم باستخدامه بطريقة واكثر
واشرت لهذا الموضوع فى احد مواضيع الاعضاء
فماذا اقصد انه عبارة عن ملخص وكونه ايضاً طرف ثاني وكونه مساهم
المقصود انك ترسل له قيمة ليقوم بتنفيذ امر واذا ارسلت له قيما ثانية سيقوم بتنفيذ امر اخر
بابسط الامور مسل فكرة الاستعلام الذى تقوم به
فنصيحة دائماً عرف DT بداخل الـ function
لانك وارد تستخدم اكثر من function فى حدث واحد وكل function يستخدم DT
اللى بطبيعتك بتقوم بتفريغها فاذا تم التفريق قبل ارسال القيم خاصتها الى معرف جديد
فهنا دور الـ function كما لم يتم ادراجه فعلياً
اتمنى ان تكون الصورة مبسطة لك
تحياتى لك
وتمنياتى لك التوفيق
|