السلام عليكم ...
الاخوة الاعزاء تحية طيبة
ماهي الطريقة لعمل استعلام على حقل نصي في قاعدة البيانات أخزن فيه التاريخ بالهجري . بحيث اريد ان أحول قيمة مربع النص من نص لتاريخ من اجل البحث . تحياتي
كود :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim dataAdapter As New SqlDataAdapter("SELECT * FROM Table_1 WHERE birth_date BETWEEN @d1 AND @d2", Con)
dataAdapter.SelectCommand.Parameters.AddWithValue("@d1", Convert.ToDateTime(Txtbirth_date_g1.Text))
dataAdapter.SelectCommand.Parameters.AddWithValue("@d2", Convert.ToDateTime(Txtbirth_date_g2.Text))
Dim dataTable As New DataTable
dataAdapter.Fill(dataTable)
DGV_Table_1.DataSource = dataTable
End Sub
هذا الكود يااخوان اذا احد اكتشف الخطا ويعطينيي الخطا التالي :
لم يتم التعرف على السلسلة datetime كقيمة صالحة
السلام عليكم اخي الكريم
بالنسبة للتاريخ الهجري لم اتعامل معه ولم اجرب هذا الكود عليه
قم بتجربة الكود على التاريخ المبلادي وان تم ذلك عندها حاول تجربته على التاريخ الهجري
اليك الكود بعد التعدبل
كود :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim dataTable As New DataTable
Dim cmd As New SqlCommand()
dt.Clear()
cmd = New SqlCommand("SELECT * FROM Table_1 WHERE birth_date >= @D1 AND birth_date <= @D2", Con)
cmd.Parameters.Add("@D1", SqlDbType.Date).Value = Convert.ToDateTime(Txtbirth_date_g1.Text)
cmd.Parameters.Add("@D2", SqlDbType.Date).Value = Convert.ToDateTime(Txtbirth_date_g2.Text)
If Con.State = ConnectionState.Open Then
Con.Close()
End If
Con.Open()
dataTable.Load(cmd.ExecuteReader())
Con.Close()
DGV_Table_1.DataSource = dataTable
End Sub
نفس رسالة الخطأ اخي الكريم
في قاعدة البيانات نوع حقل bairth_date جعلته nvchar وذلك لاني اعتمد التقويم الهجري بشكل اساسي في برناامجي . وفي حالة البحث يتم تحويله الى تاريخ . ارجو ان تكون وصلت الفكرة . تحياتي
اخي تابع هذا الموضوع وانتبه الى انه مع الـ Access
قم بتعديل الاكواد الى Sql واليك الرابط
[url=http://vb4arb.com/vb/showthread.php?tid=15936&page=2][/url]