PDA

View Full Version : مبتدی: خطا در قسمت executenonquery



rezazl
پنج شنبه 08 بهمن 1394, 16:06 عصر
سلام دوستان. من یه کاربر مبتدی ام . امروز داشتم پروژه ای رو مینوشتم که با این مشکل روبرو شدمexecute non query(); هرکاری میکنم نمیدونم مشکل کجاست. چندین بار پروژه رو از اول نوشتم بانک اکسس رو پاک کردم دوباره ایجاد کردم . نمیدونم چکارش کنم. وقتی اجرا میکنم و ذخیره میکنم این خطا روی خطی ک بالا نوشتم میاد Syntax error in INSERT INTO statement . لطفا کمکم کنید .

oleDbCommand1.Parameters.Clear();
oleDbCommand1.CommandText = "insert into login(username,password,email,phone) values(@u,@p,@e,@p)";
oleDbCommand1.Parameters.AddWithValue("@u" , textBox1.Text);
oleDbCommand1.Parameters.AddWithValue("@p" , textBox2.Text);
oleDbCommand1.Parameters.AddWithValue("@e" , textBox4.Text);
oleDbCommand1.Parameters.AddWithValue("@e" , textBox5.Text);
oleDbConnection1.Open();
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
MessageBox.Show("با موفقیت عضو شدید", "عضویت");

aslan
پنج شنبه 08 بهمن 1394, 19:03 عصر
سلام
اسامی پارامترها را درست کنید .... تکراری نباشند

rezazl
پنج شنبه 08 بهمن 1394, 19:27 عصر
سلام
اسامی پارامترها را درست کنید .... تکراری نباشند

سلام . ممنون ولی درستش کردم اما بازم همون خطا رو میده. ممکنه مثلا مسیری ک فایل اکسس رو گذاشتم مشکل داشته باشه یا نه ؟

mrprestige
پنج شنبه 08 بهمن 1394, 20:23 عصر
سلام دوستان. من یه کاربر مبتدی ام . امروز داشتم پروژه ای رو مینوشتم که با این مشکل روبرو شدمexecute non query(); هرکاری میکنم نمیدونم مشکل کجاست. چندین بار پروژه رو از اول نوشتم بانک اکسس رو پاک کردم دوباره ایجاد کردم . نمیدونم چکارش کنم. وقتی اجرا میکنم و ذخیره میکنم این خطا روی خطی ک بالا نوشتم میاد Syntax error in INSERT INTO statement . لطفا کمکم کنید .

oleDbCommand1.Parameters.Clear();
oleDbCommand1.CommandText = "insert into login(username,password,email,phone) values(@u,@p,@e,@p)";
oleDbCommand1.Parameters.AddWithValue("@u" , textBox1.Text);
oleDbCommand1.Parameters.AddWithValue("@p" , textBox2.Text);
oleDbCommand1.Parameters.AddWithValue("@e" , textBox4.Text);
oleDbCommand1.Parameters.AddWithValue("@e" , textBox5.Text);
oleDbConnection1.Open();
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
MessageBox.Show("با موفقیت عضو شدید", "عضویت");




سلام وقت بخیر ، در قسمت اول کدهاتون چرا کانکشن استرینگ رو به oleDbCommand1 نسبت ندادی ؟

کانکشن استرینگتون رو داخل یه متغییر از نوع رشته بریزید ( مثلا cn) بعد بیا توی خط اول بنویس oleDbCommand1.connection=cn

موفق باشید .

rezazl
پنج شنبه 08 بهمن 1394, 20:59 عصر
سلام وقت بخیر ، در قسمت اول کدهاتون چرا کانکشن استرینگ رو به oleDbCommand1 نسبت ندادی ؟

کانکشن استرینگتون رو داخل یه متغییر از نوع رشته بریزید ( مثلا cn) بعد بیا توی خط اول بنویس oleDbCommand1.connection=cn

موفق باشید .
سلام دوست عزیز . میشه واضح تر بگین . چون من مبتدی هستم نمیدونم باید چیکار کنم.ممنون

Yanehsar
پنج شنبه 08 بهمن 1394, 23:31 عصر
سلام دوست عزیز . میشه واضح تر بگین . چون من مبتدی هستم نمیدونم باید چیکار کنم.ممنون
سلام کدها رو به شکل زیر تغییر بده اگر بازم هم خطائی داشت از خطا عکس بذار راحتتر بشه راهنمائی کرد .


try
{
if (oleDbConnection1.State != ConnectionState.Open)
oleDbConnection1.Open();
oleDbCommand1.Connection = oleDbConnection1;
oleDbCommand1.CommandText = "insert into login(username,password,email,phone) values(@username,@password,@email,@phone)";

oleDbCommand1.Parameters.Add("@username", OleDbType.Char).Value = textBox1.Text;
oleDbCommand1.Parameters.Add("@password", OleDbType.Char).Value = textBox2.Text;
oleDbCommand1.Parameters.Add("@email", OleDbType.Char).Value = textBox3.Text;
oleDbCommand1.Parameters.Add("@phone", OleDbType.Char).Value = textBox4.Text;
if (oleDbCommand1.ExecuteNonQuery() == 1)
MessageBox.Show("با موفقیت عضو شدید", "عضویت");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (oleDbConnection1.State != ConnectionState.Closed)
oleDbConnection1.Close();
}

vb341
جمعه 09 بهمن 1394, 08:32 صبح
چرا در دستور Insert دو تا پارامتر p@ گذاشتین ولی در مقدار دهی دو تا e@ دارین ؟

esagraphic
جمعه 09 بهمن 1394, 18:57 عصر
سلام فکر کنم مشکل شما دقیقا اینه که نام یکی از فیلد های تیبل شما یک reserverd words است و شما قادر به استفاده آن نیستید یکبار فیلد password را نامش را تغیر دهید امتحان کنید ببینید چی میشه برای دیدن لست کلیمات میتونید به اینجا سر زنید
با تشکر
https://support.office.com/en-us/article/Access-2007-reserved-words-and-symbols-E33EB3A9-8BAA-4335-9F57-DA237C63EABE

rezazl
جمعه 09 بهمن 1394, 19:27 عصر
ممنونم مشکل حل شد. من دارم یه فرم ورود اعضا درست میکنم . الان کسی که اینجا عضو شده با مشخصات بالا میخوام با دادن نام کاربری و رمز عبور وارد بشه . قطعه کد مربوط چی هست ؟ ممنون میشم اگه اینو بهم بگین

حسین.کاظمی
جمعه 09 بهمن 1394, 22:41 عصر
سلام
بفرما اینم لینک (http://barnamenevis.org/showthread.php?517700-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D8%B3-%D8%A8%D8%A7-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE)مروطه