PDA

View Full Version : خطا در کوئری



arsalansalar
چهارشنبه 04 اردیبهشت 1387, 15:02 عصر
با سلام
من می خواهم یک query بنویسم که مثلا تمامی اطلاعاتی که بین سالهای 1385 تا 1387 هست را نمایش دهد ولی کدی که نوشتم خطا می گیرد.به نظر شما من کجا اشتباه می کنم؟

Dim strSql, strCon, se AsString
Dim selectSql AsString
Dim con As OleDbConnection
con = New OleDbConnection(String.Format("provider = microsoft.jet.oledb.4.0 ; data source = {0}", Server.MapPath("~") + "\App_Data\web.mdb"))
' con = New OleDbConnection(strCon)
con.Open()
Dim da AsNew OleDbDataAdapter("select * from data where sal > " + TextBox1.Text + " and sal < " + TextBox2.Text + "", con)
Dim ds AsNew DataSet
da.Fill(ds, "data")
GridView1.DataSource = ds
GridView1.DataMember = "data"

اینم خطای است که می دهد:
Data type mismatch in criteria expression

علیرضا مداح
چهارشنبه 04 اردیبهشت 1387, 16:00 عصر
سلام ،
خطا به نوع فیلد برمیگردد ، احتمالا" فیلد sal عددی نیست ،

eyes_shut_number1
چهارشنبه 04 اردیبهشت 1387, 16:00 عصر
اگه توی دیتا بیست اون سال ها از نوع datetime هستن باید با فرمت درست براشون پاس کنی.نه این که user تو textbox بزنه

arsalansalar
پنج شنبه 05 اردیبهشت 1387, 07:56 صبح
سلام ،
خطا به نوع فیلد برمیگردد ، احتمالا" فیلد sal عددی نیست ،
با سلام.
از نوع عددی هست.
من می خواستم دوستان چک کنند ببینند آیا کوئری من درست هست یا نه؟

eyes_shut_number1
پنج شنبه 05 اردیبهشت 1387, 08:51 صبح
واسه اطمینان اون دوتا دبل کتیشن رو وردار و آخره تکس باکس هات تو سترینگ اضافه کن شاید درست شد

Dim strSql, strCon, se AsString
Dim selectSql AsString
Dim con As OleDbConnection
con = New OleDbConnection(String.Format("provider = microsoft.jet.oledb.4.0 ; data source = {0}", Server.MapPath("~") + "\App_Data\web.mdb"))
' con = New OleDbConnection(strCon)
con.Open()
Dim da AsNew OleDbDataAdapter("select * from data where sal > " + Cint( TextBox1.Text).ToString + " and sal < " +Cint( TextBox2.Text).ToString, con)
Dim ds AsNew DataSet
da.Fill(ds, "data")
GridView1.DataSource = ds
GridView1.DataMember = "data"

علیرضا مداح
پنج شنبه 05 اردیبهشت 1387, 08:58 صبح
دوست عزیز علامت + را با علامت & جایگزین کنید :


Dim da AsNew OleDbDataAdapter("select * from data where sal > " & TextBox1.Text & " and sal < " & TextBox2.Text + "", con)


در ضمن دقت کنید که مقادیر وارد شده در تکست باکس ها در محدوده ی DataType مورد نظر در دیتابیس باشد.