PDA

View Full Version : سوال: خطا هنگام update کردن جدول



vb-sosol
چهارشنبه 22 بهمن 1393, 17:31 عصر
سلام دوستان
من با اکسس دارم کار میکنم
میخوام روی یکی از جدولام آپدیت بزنم خطایی Syntax error in UPDATE statement بهم میده
در حالی که از همین نمونه کد چند خط بالاتر استفاده کردم و مشکلی نداشت
داره دیونم میکنه مشکلش کجاس؟:گریه:

کدهای من:
System.Data.OleDb.OleDbConnection ocnp = new System.Data.OleDb.OleDbConnection();
System.Data.OleDb.OleDbCommand ocmp = new System.Data.OleDb.OleDbCommand();
ocnp.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\DBPerson.mdb";
ocmp.Connection = ocnp;

ocmp.CommandText = "UPDATE Person SET PersonName=@PersonName,BirthDay=@BirthDay,BirthMah =@BirthMah,BirthYear=@BirthYear,UserName=@UserName ,Password=@Password,Question=@Question,Answer=@Ans wer,Active=@Active WHERE id=1";

ocmp.Parameters.Clear();
ocmp.Parameters.AddWithValue("@PersonName", txtNameUesr.Text);
ocmp.Parameters.AddWithValue("@BirthDay", comboBoxrooz.Text);
ocmp.Parameters.AddWithValue("@BirthMah", comboBoxMah.Text);
ocmp.Parameters.AddWithValue("@BirthYear", txtyears.Text);
ocmp.Parameters.AddWithValue("@UserName", txtUser.Text);
ocmp.Parameters.AddWithValue("@Password", txtPassword.Text);
ocmp.Parameters.AddWithValue("@Question", comboBoxQuestion.Text);
ocmp.Parameters.AddWithValue("@Answer", txtAnswer.Text);
ocmp.Parameters.AddWithValue("@Active", active);

ocnp.Open();
ocmp.ExecuteNonQuery();


ocnp.Close();

ocmp.Dispose();
ocnp.Dispose();

jd.mn98
چهارشنبه 22 بهمن 1393, 17:37 عصر
به نظرم جای @answer فاصله ایجاد شده
اینطوریه :

"@ans wer"


جای مقدار دادن به پارامتر active@ هم شما نوشتید active نباید active.Text باشه؟؟

vb-sosol
چهارشنبه 22 بهمن 1393, 17:44 عصر
به نظرم جای @answer فاصله ایجاد شده
اینطوریه :

"@ans wer"


جای مقدار دادن به پارامتر active@ هم شما نوشتید active نباید active.Text باشه؟؟

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

active رشته هستش و دارم به صورت رشته ای پاسش میدم

بیتا حکمت
چهارشنبه 22 بهمن 1393, 17:47 عصر
انتهای کوئری رو به این صورت بنویسید ، شاید شاید درست شد


WHERE id='1'

vb-sosol
چهارشنبه 22 بهمن 1393, 18:02 عصر
انتهای کوئری رو به این صورت بنویسید ، شاید شاید درست شد


WHERE id='1'



خیر دوست عزیز بازم همون خطا :افسرده:

plus
چهارشنبه 22 بهمن 1393, 18:44 عصر
به نظر نمیاد خطای Syntax ی داشته باشه. در چنین مواقعی میتونید Query رو قسمت به قسمت اضافه کنید تا خطا رو پیدا کنید. برای مثال از

UPDATE Person SET PersonName=@PersonName WHERE id=1

شروع کنید و بعد قسمت های دیگه رو اضافه کنید تا ببینید کجا به خطا میخورید.

vb-sosol
چهارشنبه 22 بهمن 1393, 18:55 عصر
اوکی چک میکنم

plus
چهارشنبه 22 بهمن 1393, 19:01 عصر
احتمالا در ویرایش کدی که ارسال کردین این خط رو جا انداختین:

ocmp.Connection = ocnp;

vb-sosol
چهارشنبه 22 بهمن 1393, 19:03 عصر
ظاهرا برای Password=@Password هستش
فکنم کلمه کلیدی هست نمیذاره!
ممنون از دوستان

plus
چهارشنبه 22 بهمن 1393, 22:29 عصر
در TSQL که Password کلمه کلیدی نیست؛ در MS Access رو نمیدونم. اگه اینطور باشه، فکر میکنم بتونید از [Password] بجای Password استفاده کنید.