PDA

View Full Version : مبتدی: این کد چراکار نمی کنه



meri_rad
شنبه 11 اردیبهشت 1389, 16:51 عصر
[Code]DELETE FROM LETTER WHERE LETTER# IN('1/87','2/25')
[\Code]‎
ارور میده که نمی تونه مقدار nvarchar به int تبدیل کنه تو روش با پارامتر هیچ کاری نمی کنه
فقط DEL کارنمی کنه insert کار می کنه

مجتبی زارع
شنبه 11 اردیبهشت 1389, 17:10 عصر
سوالت
واضح تر بنویس

rabi213
شنبه 11 اردیبهشت 1389, 21:09 عصر
int n = Convert.ToInt16(frm.busNum.Text.ToString());
string d1 = frm.date1.Text.ToString();
string d2 = frm.date2.Text.ToString();


OleDbDataAdapter dta = new OleDbDataAdapter("Select b.BusDate, b.BusTime,b.latitude, b.longitude," +
" from BusLocation b, DriverInfo d where d.BusNumber =" + n + " AND b.BusDate between "+d1+
+ "and " + d2, "provider=microsoft.jet.oledb.4.0;data source=Driverr.mdb");
ds.Clear();
dta.Fill(ds, "BusLocation");
مشکل این کوئری چیه؟..قسمت بولد شده این ارور رو به من میده:Syntax error (missing operator) in query expression 'BusLocation b'
:افسرده:

behnam25214
شنبه 11 اردیبهشت 1389, 21:56 عصر
DELETE FROM LETTER WHERE LETTER# IN('1/87','2/25')
[\Code]‎
ارور میده که نمی تونه مقدار nvarchar به int تبدیل کنه تو روش با پارامتر هیچ کاری نمی کنه
فقط DEL کارنمی کنه insert کار می کنه

خوب از Convert استفاده کن.

Convert.ToInt16("String");


[code]int n = Convert.ToInt16(frm.busNum.Text.ToString());
string d1 = frm.date1.Text.ToString();
string d2 = frm.date2.Text.ToString();


OleDbDataAdapter dta = new OleDbDataAdapter("Select b.BusDate, b.BusTime,b.latitude, b.longitude," +
" from BusLocation b, DriverInfo d where d.BusNumber =" + n + " AND b.BusDate between "+d1+
+ "and " + d2, "provider=microsoft.jet.oledb.4.0;data source=Driverr.mdb");
ds.Clear();
dta.Fill(ds, "BusLocation");مشکل این کوئری چیه؟..قسمت بولد شده این ارور رو به من میده:Syntax error (missing operator) in query expression 'BusLocation b'
:افسرده:

میخوایی چه کاری انجام دهی که این ارور رو میده میخوایی Delete کنی یا داده ها رو نمایش بدی.:متفکر:
اگه میخوایی Delete کنی به جای Select در dta از Delete استفاده کن.به عنوان مثال
Delete From Book Where Id=20

rabi213
شنبه 11 اردیبهشت 1389, 22:00 عصر
نه.میخوام داده رو نمایش بدم تو جدول دیتا گرید ویو..
مقدار d1,d2, n هم از فرم اصلی اوردم..این جدول گرید ویو تو فرم فرزند هست

behnam25214
شنبه 11 اردیبهشت 1389, 22:07 عصر
این کد برای نمایشه خودتت ویرایشش کن.:بوس:


string Scon;
string Ssql;
dataGridView1.DataBindings.Clear();
dataGridView1.ReadOnly = true;
Scon = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source = " + Environment.CurrentDirectory + "\\SuperMarket.mdb";
OleDbConnection Con = new OleDbConnection(Scon);
Con.Open();
Ssql = "Select * From Customer";
OleDbDataAdapter da = new OleDbDataAdapter(Ssql, Con);
DataSet ds = new DataSet();
da.Fill(ds, "Customer");
dataGridView1.DataBindings.Add(new Binding("DataSource",ds,"Customer"));
Con.Close();
}

meri_rad
یک شنبه 12 اردیبهشت 1389, 10:09 صبح
خوب از Convert استفاده کن.

Convert.ToInt16("String");





از convert استفاده کردم بازم جواب نداد
دیگه نمی دونم چیکار باید بکنم

meri_rad
یک شنبه 12 اردیبهشت 1389, 10:14 صبح
سوالت
واضح تر بنویس
من تو جدول letter داده ه رو insert می کنم ولی وقتی می خوام delete کنم ارور میده که نمی تونه مقدار nvar char به int تبدیل کنه
اومدم شرطم رو تو پارامتر ریختم دیگه ارور نمیده ولی هیچ کاریم نمی کنه
تو خود sql این کد کار می کنه

exlord
یک شنبه 12 اردیبهشت 1389, 10:26 صبح
int n = Convert.ToInt16(frm.busNum.Text.ToString());
string d1 = frm.date1.Text.ToString();
string d2 = frm.date2.Text.ToString();


OleDbDataAdapter dta = new OleDbDataAdapter("Select b.BusDate, b.BusTime,b.latitude, b.longitude," +
" from BusLocation b, DriverInfo d where d.BusNumber =" + n + " AND b.BusDate between "+d1+
+ "and " + d2, "provider=microsoft.jet.oledb.4.0;data source=Driverr.mdb");
ds.Clear();
dta.Fill(ds, "BusLocation");مشکل این کوئری چیه؟..قسمت بولد شده این ارور رو به من میده:Syntax error (missing operator) in query expression 'BusLocation b'
:افسرده:


from BusLocation as b, DriverInfo as d <-- from BusLocation b, DriverInfo d

meri_rad
یک شنبه 12 اردیبهشت 1389, 10:51 صبح
لطفا کمک کنید
این کد چرا ارور میده


delete from letter where letter# in ('1/87','2/25')