PDA

View Full Version : سوال: مشکل در درج اطلاعات در sql



rozitir
چهارشنبه 21 مرداد 1394, 16:11 عصر
سلام

یه فرم ساختم که اطلاعات رو به دیتابیس بفرسته
ولی وقتی اجراش میکنم برنامه کار نمیکنه
و این قسمت رو اخطار می افته cmd.ExecuteNonQuery();


SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=foroosh;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.Parameters.Clear();
cmd.CommandText = "insert into tbl1(شماره فاکتور,اسم فروشنده,تلفن فروشنده,آدرس فروشنده,قیمت محصول,اسم محصول,نحوه پرداخت,تصویر محصول,) values(@شماره فاکتور,@اسم فروشنده,@تلفن فروشنده,@آدرس فروشنده,@قیمت محصول,@اسم محصول,@نحوه پرداخت,@تصویر محصول,)"; cmd.Parameters.AddWithValue("@شماره فاکتور", textBox1.Text);
cmd.Parameters.AddWithValue("@اسم فروشنده", textBox2.Text);
cmd.Parameters.AddWithValue("@اتلفن فروشنده", textBox3.Text);
cmd.Parameters.AddWithValue("@آدرس فروشنده", textBox4.Text);
cmd.Parameters.AddWithValue("@قیمت محصول", textBox5.Text);
cmd.Parameters.AddWithValue("@اسم محصول", textBox6.Text);
cmd.Parameters.AddWithValue("@نحوه پرداخت", comboBox1.Text);
cmd.Parameters.AddWithValue("@تصویر محصول", openFileDialog1.FileName);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقيت ثبت شد", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);

masoud sh
چهارشنبه 21 مرداد 1394, 16:16 عصر
سلام دوست عزیز توصیه میکنم اسم ستونها و پارامترهاتونا فارسی نزارید
و دوم اینکه متن خطایی که میده را بزارید یا عکسشا یا خود متن خطا را
خیلی چیزا میتونه باشه

و دیگه اینکه تا اونجایی که من بلدم اصلا فکر میکنم دستور کامندتون اشتباهه :متفکر:

rozitir
چهارشنبه 21 مرداد 1394, 16:20 عصر
سلام
میخاستم فارسی امتحان کنم
برنامه هیچ خطایی نداره فقط وقتی میخاد اجرا کنه پیام زیر رو میده
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Incorrect syntax near 'nvarchar'.

Incorrect syntax near 'فاکتور'.

نه دستور فک نمی کنم اشتباه باشه قبلا باهاش کار کردم

masoud sh
چهارشنبه 21 مرداد 1394, 16:32 عصر
برنامه هیچ خطایی نداره فقط وقتی میخاد اجرا کنه

.
اینکه برنامه خطایی نداره بخاطر اینه که از لحاظ کامپایلر سی شارپ شما دستور اشتباهی ننوشتید ولی دستور اسکیوالتون وقتی میخواد اجرا بشه خطا میگیره و این ارور را میده

اینجوری امتحان کنید فکر کنم بهتر باشه


string str = "insert into table1(column1, column2)valuse(N'{0}',N'{1}')"
str = string.Format(str,textBox1.Text,textBox2.Text);
cmd.CommandText= str;


که البته برای پارامتر پهای غیر رشته ای '' و برای پارامتر های که فارسی نیستند N لازم نیست

rozitir
چهارشنبه 21 مرداد 1394, 16:36 عصر
نه درست نشد:گریه:

محمد رضا فاتحی
چهارشنبه 21 مرداد 1394, 16:41 عصر
خطاش معلومه برای چیه...
چون اسم فیلدهاتون فارسیه و بخصوص بخاطر اسپیس باید ستون ها داخل براکت[] باشه

rozitir
چهارشنبه 21 مرداد 1394, 16:52 عصر
اینجوری ؟؟
درست نشد
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=foroosh;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.Parameters.Clear();
cmd.CommandText = "insert into tbl1([شماره فاکتور],[اسم فروشنده],[تلفن فروشنده],[آدرس فروشنده],[قیمت محصول],[اسم محصول],[نحوه پرداخت],[تصویر محصول]) values(@[شماره فاکتور]@,[اسم فروشنده]@,[تلفن فروشنده]@,[آدرس فروشنده]@,[قیمت محصول]@,[اسم محصول]@,[نحوه پرداخت]@,[تصویر محصول])"; cmd.Parameters.AddWithValue("[آدرس فروشنده]@", textBox1.Text);
cmd.Parameters.AddWithValue("@[اسم فروشنده]", textBox2.Text);
cmd.Parameters.AddWithValue("@[تلفن فروشنده]", textBox3.Text);
cmd.Parameters.AddWithValue("@[آدرس فروشنده]", textBox4.Text);
cmd.Parameters.AddWithValue("@[قیمت محصول]", textBox5.Text);
cmd.Parameters.AddWithValue("@[اسم محصول]", textBox6.Text);
cmd.Parameters.AddWithValue("@[نحوه پرداخت]", comboBox1.Text);
cmd.Parameters.AddWithValue("@[تصویر محصول]", openFileDialog1.FileName);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقيت ثبت شد", "ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Information);

aliasghar2
چهارشنبه 21 مرداد 1394, 18:18 عصر
میگم شمااین همه راه حل رو تست کردی یه بارم برو اسم فیلداتو انگلیسی کن درست میشه انجوری اینم درست بشه بعدا تو کارهای دیگه مشکل میخوری

rozitir
چهارشنبه 21 مرداد 1394, 21:25 عصر
باشه دیگه چاره ای نیس