PDA

View Full Version : سوال: ارور Incorrect syntax near '31'



mohsenesm
جمعه 11 بهمن 1392, 20:57 عصر
لطفا کمک کنید این Incorrect syntax near '31' ارور این تیکه کد برنامه منه نمیدونم چیکارش کنم
private void button3_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("insert into sells(id,name,customer,count,price,date) values ('" + Convert.ToInt64(textBox6.Text) +"','"+textBox5.Text+ "','" + textBox4.Text + "','" + Convert.ToInt32(textBox2.Text) + "','" + textBox3.Text + "'," + DateTime.Now.ToLongDateString() + ")", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SqlCommand cmd2 = new SqlCommand("select * from produce where id=" + Convert.ToInt64(textBox6.Text), conn);
conn.Open();
SqlDataReader reader = cmd2.ExecuteReader();
reader.Read();
SqlCommand cmd3=new SqlCommand("update produce set count="+ (Convert.ToInt32(reader["count"]) - Convert.ToInt32(textBox2.Text)) +" where id=" + Convert.ToInt64(textBox6.Text), conn);
conn.Close();
conn.Open();
cmd3.ExecuteNonQuery();
conn.Close();
MessageBox.Show("عملیات خرید با موفقیت انجام شد");
}

farazjalili
جمعه 11 بهمن 1392, 21:06 عصر
با سلام تمام convert ها را بردارین و رشته رو مستقیم پاس بدین یعنی : Convert.ToInt64(textBox6.Text) به textBox6.Text و ..... و اجازه دهید خود ado.net به صورت اتوماتیک convert را انجام دهد .

mohsenesm
جمعه 11 بهمن 1392, 21:32 عصر
مرسی از راهنماییت ورداشتم ولی بازم همون ارور رو میده

ordebehesht
جمعه 11 بهمن 1392, 22:01 عصر
ابن خط 31 کدومه

Mahmoud.Afrad
جمعه 11 بهمن 1392, 22:07 عصر
نوع id عددی هست به خاطر همین نیازی به تک کوتیشن نیست.
از پارامترها استفاده کنید تا به این خطاها برخورد نکنید.

mehrdad.ghorbaniyan
جمعه 11 بهمن 1392, 22:11 عصر
دوست عزیز.به نظر من کدهاتو در حین اجرا خط به خط چک ببین کجا ارور میده.بعد اون کدی که میفرسته برای sql همون را کپی کن.بعد ببر تو خود sql اونجا خیلی بهتر میتونی مشکلتو حل کنی.منم همین کارو میکنم همیشه

mohsenesm
شنبه 12 بهمن 1392, 07:21 صبح
نوع id عددی هست به خاطر همین نیازی به تک کوتیشن نیست.
از پارامترها استفاده کنید تا به این خطاها برخورد نکنید.
متوجه نوشدم پارامترها یعنی چی
البته با عرض معذرت پرژه یکی از دوستامه من ای اس پی کارم و این C# خیلی اذیت میکنه

mohsenesm
شنبه 12 بهمن 1392, 07:22 صبح
دوست عزیز.به نظر من کدهاتو در حین اجرا خط به خط چک ببین کجا ارور میده.بعد اون کدی که میفرسته برای sql همون را کپی کن.بعد ببر تو خود sql اونجا خیلی بهتر میتونی مشکلتو حل کنی.منم همین کارو میکنم همیشه

خط به خط اجرا کردم ولی معلوم نمیکنه تو سایتای خارجی سرچ کردم نوشته ورژن اس کیو ال مشکل داره

mohsenesm
شنبه 12 بهمن 1392, 11:41 صبح
خیلی واجبه لطفا کسی کمک کنه

h_jafarnezhad
شنبه 12 بهمن 1392, 12:43 عصر
يه نمونه كد مينويستم ميتوني ازش استفاده كني

SqlConnection con = new SqlConnection("");
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "update table set name=@name,family=@family where id=" + TextBox1.Text + "";
com.Parameters.AddWithValue("@name", text1.text.trim());
com.Parameters.AddWithValue("@family", text2.text.trim());
com.ExecuteNonQuery();
com.Parameters.Clear();

h_jafarnezhad
شنبه 12 بهمن 1392, 12:44 عصر
اخر سر هم اگه ديتا گريد داري دوباره پرش مي كني

hsdnhd
سه شنبه 31 تیر 1393, 16:20 عصر
متوجه نوشدم پارامترها یعنی چی
البته با عرض معذرت پرژه یکی از دوستامه من ای اس پی کارم و این C#‎ خیلی اذیت میکنه



این مسئله ومشکل اصلا ربطی به سی شارپ یا ای اس پی نداره مربوط میشه به ado.netومن مطمئنم توی aspهم ازهمین روش استفاده میشه

erfan_urchin
سه شنبه 31 تیر 1393, 17:46 عصر
متوجه نوشدم پارامترها یعنی چی
البته با عرض معذرت پرژه یکی از دوستامه من ای اس پی کارم و این C#‎ خیلی اذیت میکنه
دوست عزیز توی SqlCommand اول شما باید سینگل کوتیشن رو برای id و count برداری یعنی اینجوری
SqlCommand cmd = new SqlCommand("insert into sells(id,name,customer,count,price,date) values (" + Convert.ToInt64(textBox6.Text) +",'"+textBox5.Text+ "','" + textBox4.Text + "'," + Convert.ToInt32(textBox2.Text) + ",'" + textBox3.Text + "'," + DateTime.Now.ToLongDateString() + ")", conn);