منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
استعلام بشرط محدد - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : استعلام بشرط محدد (/showthread.php?tid=31782)



استعلام بشرط محدد - issamsaidd - 17-10-19

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

اود ان اتقدم لكافة اعضاء هذا المنتدى على مجوداتهم الجبارة وخاصة الاخ asemshahen5

الطلب هو ان ابحث اختار تاريخ البداية وتاريخ النهاية ويبحث فى العمود XDATE فى التاريخ المذكور
بشرط ان يكون عمر الشخص 20 عام 

صورة توضحية
مثلا اريد كل من هو من شهر 1/1/2019 حتى 30/1/2019 وشرط ان يكون عمرة 20 سنة يعرضة فى dataGridView1
 
وشكرا لكم
السورس كود للتحميل




RE: استعلام بشرط محدد - elgokr - 17-10-19

وعليكم السلام ورحمة الله وبركاته
مرحباً اخى issamsaidd

جزاك الله خيراً على الكلمة الطيبة فى حق الغير
فبارك الله لك فى حسن كلمتك الطيبة وزادك الله من خيره

بخصوص كود البحث فقط  كل الامر ان تجعل الاستعلام بهذا الشكل
كود :
SELECT * FROM mytable WHERE xdate Between #01/08/1980# And #31/01/2000# AND Date() >= DateAdd("yyyy", 20,  xdate)

الان كل ما عليك هو 
1- استبدال الـ 01/08/1980 بالتاريخ البداية وليكن CDate(textBox1.text)
2- استبدال الـ 31/01/2000 بالتاريخ النهاية وليكن CDate(textBox2.text)
3- استبدال رقم 20 بالرقم عدد السنوات وليكن بـ textBox3.txt

وستجد النتائج معك تعمل بدون اى مشكلة
مرفق قاعدة بيانات تحتوى على جدول تواريخ مختلفة وكذلك query لاختبار نتيجة الاستعلام

تحياتى لك
وتمنياتى لك التوفيق



RE: استعلام بشرط محدد - issamsaidd - 17-10-19

اخى الكريم شكرا لك ولكن انا اريد ان يعرض الفترة التاريخة من العمود XDATE  ويعرض العمر المحدد من العمود xage ويضعهم فى dataGridView1
مثلا هذا الكود بحث بين تاريخن كيف لى ان اضيف عمود العمر لهم 
كود :
try
               {
                   // البحث
                   OleDbDataAdapter da = new OleDbDataAdapter("select * from issam where XDATE  between @sd and @sf", con);
                   da.SelectCommand.Parameters.AddWithValue("@sd",dtp1.Value.ToString("dd/MM/yyyy"));
                   da.SelectCommand.Parameters.AddWithValue("@sf", dtp2.Value.ToString("dd/MM/yyyy"));
                   DataTable dt = new DataTable();
                   da.Fill(dt);
                   dataGridView1.DataSource = dt;

               }
               catch (Exception ex)
               {
                   MessageBox.Show(ex.Message);
                   con.Close();
               }



RE: استعلام بشرط محدد - elgokr - 17-10-19

الشكر لله والحمد لله
والحمد لله على كل حال

بما انك لديك عمود محدد به العمر فكل ما عليك ان تجعل الكود بهذا الشكل
كود :
            try
           {
               // البحث
               OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM mytable WHERE xdate Between @sd And @sf AND xage >= $xg", con);
               da.SelectCommand.Parameters.AddWithValue("@sd", dtp1.Value.ToString("dd/MM/yyyy"));
               da.SelectCommand.Parameters.AddWithValue("@sf", dtp2.Value.ToString("dd/MM/yyyy"));
               da.SelectCommand.Parameters.AddWithValue("@xg", dtp3.Value.ToString());
               DataTable dt = new DataTable();
               da.Fill(dt);
               dataGridView1.DataSource = dt;
               dataGridView1.Refresh();
           }

بخصوص هذا الجزء
PHP كود :
dtp3.Value.ToString() 

استبدله بالقيمة التى تخص العمر

تحياتى لك
وتمنياتى لك التوفيق



RE: استعلام بشرط محدد - issamsaidd - 17-10-19

(17-10-19, 06:29 PM)elgokr كتب :
الشكر لله والحمد لله
والحمد لله على كل حال

بما انك لديك عمود محدد به العمر فكل ما عليك ان تجعل الكود بهذا الشكل
كود :
            try
           {
               // البحث
               OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM mytable WHERE xdate Between @sd And @sf AND xage >= $xg", con);
               da.SelectCommand.Parameters.AddWithValue("@sd", dtp1.Value.ToString("dd/MM/yyyy"));
               da.SelectCommand.Parameters.AddWithValue("@sf", dtp2.Value.ToString("dd/MM/yyyy"));
               da.SelectCommand.Parameters.AddWithValue("@xg", dtp3.Value.ToString());
               DataTable dt = new DataTable();
               da.Fill(dt);
               dataGridView1.DataSource = dt;
               dataGridView1.Refresh();
           }

بخصوص هذا الجزء
PHP كود :
dtp3.Value.ToString() 

استبدله بالقيمة التى تخص العمر

تحياتى لك
وتمنياتى لك التوفيق

شكرا لك ولكن عند الاستعلام يتم اخفاء ما بداخل شبكة الدتا جريد فيو الكود للتاكد بعد وضع اسماء الجدول
كود :
           try
           {
               // البحث
               OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM issam where XDATE Between @sd And @sf AND xage >= xg", con);
               da.SelectCommand.Parameters.AddWithValue("@sd", dateTimePicker2.Value.ToString("dd/MM/yyyy"));
               da.SelectCommand.Parameters.AddWithValue("@sf", dateTimePicker3.Value.ToString("dd/MM/yyyy"));
               da.SelectCommand.Parameters.AddWithValue("@xg", textBox6.Text);
               DataTable dt = new DataTable();
               da.Fill(dt);
               dataGridView1.DataSource = dt;
               dataGridView1.Refresh();

           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
               con.Close();
           }



RE: استعلام بشرط محدد - elgokr - 17-10-19

الشكر لله والحمد لله 
والحمد لله على كل حال

فقط قم بوضه كود اسماء الاعمدة اسفل هذا السطر
كود :
dataGridView1.Refresh();

وسيكون الاسماء تعرض كما كانت لكون البحص هنا كما لو تقوم بعمل لود للفورم من جديد
ولكن بنتائج استعلام خاصة البحث اجعل لود الداتا جريد فى function لوحده وكذلك البحث فى function
واعمل شرط تحقق اذا كان textBox البحث فارغ يعود بـ function الخاص باللود الافتراضى واذا كان بنتائج يقوم بعرض function البحث

تحياتى لك
وتمنياتى لك التوفيق



RE: استعلام بشرط محدد - issamsaidd - 17-10-19

(17-10-19, 07:12 PM)elgokr كتب :
الشكر لله والحمد لله 
والحمد لله على كل حال

فقط قم بوضه كود اسماء الاعمدة اسفل هذا السطر
كود :
dataGridView1.Refresh();

وسيكون الاسماء تعرض كما كانت لكون البحص هنا كما لو تقوم بعمل لود للفورم من جديد
ولكن بنتائج استعلام خاصة البحث اجعل لود الداتا جريد فى function لوحده وكذلك البحث فى function
واعمل شرط تحقق اذا كان textBox البحث فارغ يعود بـ function الخاص باللود الافتراضى واذا كان بنتائج يقوم بعرض function البحث

تحياتى لك
وتمنياتى لك التوفيق


شكرا جزيلا لك تم حل المشكله بنجاح
السورس كود للاخوة الاعضاء للاستفادة 
السورس كود
استفاء اخير هل يمكن عرض الاسماء ان اخر واحد اضيفة يظهر اول واحد فى dataGridView1




RE: استعلام بشرط محدد - issamsaidd - 17-10-19

استفسار اخير هل يمكن عرض الاسماء ان اخر واحد اضيفة يظهر اول واحد فى dataGridView1


RE: استعلام بشرط محدد - elgokr - 17-10-19

الشكر لله والحمد لله
والحمد لله على كل حال

بخصوص الاستفسار فقط اضف هذه الجملة الى اخر الاستعلام
كود :
ORDER BY xid DESC


بحيث الشكل سيكون بهذا الشكل
كود :
"SELECT * FROM mytable WHERE xdate Between @sd And @sf AND xage >= $xg ORDER BY xid DESC"

تعني كلمة DESC ترتيب تنازلي و ASC تعني العكس وهى تنازلى يمكنك 
ايضاً جعلها بدون الكلمة وهو تلقائي سيعتبرها ASC

تحياتى لك
وتمنياتى لك التوفيق



RE: استعلام بشرط محدد - issamsaidd - 20-10-19

الف شكر لك ولكن انا استفسارى ما فى طريقة لقلب الدتا جريد فيو با الكامل اخر واحد يضاف اول واحد يكون اول واحد بعد الاضافة او حتى فى الاتسعلام
مع العلم ان المفتاح الاساسى اسمة XID وشكرا لك على ما قدمتة ♥