السلام عليكم ورحمة الله
اود ان اتقدم لكافة اعضاء هذا المنتدى على مجوداتهم الجبارة وخاصة الاخ
asemshahen5
الطلب هو ان ابحث اختار تاريخ البداية وتاريخ النهاية ويبحث فى العمود XDATE فى التاريخ المذكور
بشرط ان يكون عمر الشخص 20 عام
صورة توضحية
مثلا اريد كل من هو من شهر 1/1/2019 حتى 30/1/2019 وشرط ان يكون عمرة 20 سنة يعرضة فى dataGridView1
وشكرا لكم
وعليكم السلام ورحمة الله وبركاته
مرحباً اخى 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 لاختبار نتيجة الاستعلام
تحياتى لك
وتمنياتى لك التوفيق
اخى الكريم شكرا لك ولكن انا اريد ان يعرض الفترة التاريخة من العمود 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();
}
الشكر لله والحمد لله
والحمد لله على كل حال
بما انك لديك عمود محدد به العمر فكل ما عليك ان تجعل الكود بهذا الشكل
كود :
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();
}
بخصوص هذا الجزء
استبدله بالقيمة التى تخص العمر
تحياتى لك
وتمنياتى لك التوفيق
(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();
}
بخصوص هذا الجزء
استبدله بالقيمة التى تخص العمر
تحياتى لك
وتمنياتى لك التوفيق
شكرا لك ولكن عند الاستعلام يتم اخفاء ما بداخل شبكة الدتا جريد فيو الكود للتاكد بعد وضع اسماء الجدول
كود :
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();
}
الشكر لله والحمد لله
والحمد لله على كل حال
فقط قم بوضه كود اسماء الاعمدة اسفل هذا السطر
كود :
dataGridView1.Refresh();
وسيكون الاسماء تعرض كما كانت لكون البحص هنا كما لو تقوم بعمل لود للفورم من جديد
ولكن بنتائج استعلام خاصة البحث اجعل لود الداتا جريد فى function لوحده وكذلك البحث فى function
واعمل شرط تحقق اذا كان textBox البحث فارغ يعود بـ function الخاص باللود الافتراضى واذا كان بنتائج يقوم بعرض function البحث
تحياتى لك
وتمنياتى لك التوفيق
(17-10-19, 07:12 PM)elgokr كتب : [ -> ]الشكر لله والحمد لله
والحمد لله على كل حال
فقط قم بوضه كود اسماء الاعمدة اسفل هذا السطر
كود :
dataGridView1.Refresh();
وسيكون الاسماء تعرض كما كانت لكون البحص هنا كما لو تقوم بعمل لود للفورم من جديد
ولكن بنتائج استعلام خاصة البحث اجعل لود الداتا جريد فى function لوحده وكذلك البحث فى function
واعمل شرط تحقق اذا كان textBox البحث فارغ يعود بـ function الخاص باللود الافتراضى واذا كان بنتائج يقوم بعرض function البحث
تحياتى لك
وتمنياتى لك التوفيق
شكرا جزيلا لك تم حل المشكله بنجاح
السورس كود للاخوة الاعضاء للاستفادة
السورس كود
استفاء اخير هل يمكن عرض الاسماء ان اخر واحد اضيفة يظهر اول واحد فى dataGridView1
استفسار اخير هل يمكن عرض الاسماء ان اخر واحد اضيفة يظهر اول واحد فى dataGridView1
الشكر لله والحمد لله
والحمد لله على كل حال
بخصوص الاستفسار فقط اضف هذه الجملة الى اخر الاستعلام
بحيث الشكل سيكون بهذا الشكل
كود :
"SELECT * FROM mytable WHERE xdate Between @sd And @sf AND xage >= $xg ORDER BY xid DESC"
تعني كلمة DESC ترتيب تنازلي و ASC تعني العكس وهى تنازلى يمكنك
ايضاً جعلها بدون الكلمة وهو تلقائي سيعتبرها ASC
تحياتى لك
وتمنياتى لك التوفيق
الف شكر لك ولكن انا استفسارى ما فى طريقة لقلب الدتا جريد فيو با الكامل اخر واحد يضاف اول واحد يكون اول واحد بعد الاضافة او حتى فى الاتسعلام
مع العلم ان المفتاح الاساسى اسمة XID وشكرا لك على ما قدمتة ♥