PDA

View Full Version : سوال: خطای syntax error in insert into statement



حسین.کاظمی
دوشنبه 11 فروردین 1393, 16:43 عصر
سلام به دوستان گلم
یک سوال فوری دارم از حضور شما عزیزان
من در پروژه ام دارم یک فرم ایجاد کاربری با حق دسترسی به منوهای برنامه میسازم؛واسه تست برنامه با،سه تا رادیو باتن برنامه را ساختم کاملا کار میکرد و تمام اطلاعات هم ثبت میشد،ولی بعد از قرار دادن 37تا رادیو باتن برروی فرمم و سپس کد نویسی بابت ثبت اطلاعات با مشکلی برخورد کردم عنوان خطا هم اینه:syntax error in insert into statement در صورتی که همه چیز درست و بترتیبه اینم کد نویسیم:
if (txtNameUser.Text == "" || txtpassword.Text == "" || cmbtype.Text == "لطفاً انتخاب کنید"||vaziat=="") {
FarsiMessageBox.MessageBox.Show("خطا", "اطلاعات مورد نیاز با کامل کنید", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Error);
}
if (!Dastresi.Checked)
{
FarsiMessageBox.MessageBox.Show("خطا", "حق دسترسی کاربر را تعیین نمایید،سپس برای ثبت دوباره تلاش کنید", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Warning);
}
else
{
try
{
OleDbConnection ocn = new OleDbConnection(ConnectionString);
OleDbCommand ocm = new OleDbCommand();
ocm.CommandText = "INSERT INTO tbl_Users(Name_User,Password_User,Type_User,DateMo dify_User,Vaziat,Paye,Personel,Kargah,Year,typeUse r,setting,FehrestPesronel,ViewActivePersonel,viewD activePersonel,qararDad,OmurRozaneh,TazakorKatbi,q eibat,SwichPersonel,KarkardPersonel,KhadamatPerson el,SodorKart,MoarefiName,bemehPersonel,ListBemeh,L isttaghirat,Hadeseh,SavabeghEstelaji,takmili,Karbo rdi,Notpad,Calender,Oghatsharee,Sendsms,Tel,BookCo ntactPersonel,NumDakheli,Alarms,Alarm_music,Alarm_ Message,YadAvari,BachUp)VALUES(@1,@2,@3,@4,@5,@6,@ 7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17,@18,@19,@2 0,@21,@22,@23,@24,@25,@26,@27,@28,@29,@30,@31,@32, @33,@34,@35,@36,@37,@38,@39,@40,@41,@42)";
ocm.Parameters.Clear();
ocm.Parameters.AddWithValue("@1", txtNameUser.Text);
ocm.Parameters.AddWithValue("@2", txtpassword.Text);
ocm.Parameters.AddWithValue("@3", cmbtype.Text);
ocm.Parameters.AddWithValue("@4", txtdate.Text);
ocm.Parameters.AddWithValue("@5", vaziat);///در صورت انتخاب یکی از رادیو بتن ها خاصیت متنش را در یک متغییراز نوع رشته میریزه
ocm.Parameters.AddWithValue("@6", checkBox1.Checked);
ocm.Parameters.AddWithValue("@7", checkBox2.Checked);
ocm.Parameters.AddWithValue("@8", checkBox3.Checked);
ocm.Parameters.AddWithValue("@9", checkBox4.Checked);
ocm.Parameters.AddWithValue("@10", checkBox5.Checked);
ocm.Parameters.AddWithValue("@11", checkBox6.Checked);
ocm.Parameters.AddWithValue("@12", checkBox7.Checked);
ocm.Parameters.AddWithValue("@13", checkBox8.Checked);
ocm.Parameters.AddWithValue("@14", checkBox9.Checked);
ocm.Parameters.AddWithValue("@15", checkBox10.Checked);
ocm.Parameters.AddWithValue("@16", checkBox11.Checked);
ocm.Parameters.AddWithValue("@17", checkBox12.Checked);
ocm.Parameters.AddWithValue("@18", checkBox13.Checked);
ocm.Parameters.AddWithValue("@19", checkBox14.Checked);
ocm.Parameters.AddWithValue("@20", checkBox15.Checked);
ocm.Parameters.AddWithValue("@21", checkBox16.Checked);
ocm.Parameters.AddWithValue("@22", checkBox17.Checked);
ocm.Parameters.AddWithValue("@23", checkBox18.Checked);
ocm.Parameters.AddWithValue("@24", checkBox19.Checked);
ocm.Parameters.AddWithValue("@25", checkBox20.Checked);
ocm.Parameters.AddWithValue("@26", checkBox21.Checked);
ocm.Parameters.AddWithValue("@27", checkBox22.Checked);
ocm.Parameters.AddWithValue("@28", checkBox23.Checked);
ocm.Parameters.AddWithValue("@29", checkBox24.Checked);
ocm.Parameters.AddWithValue("@30", checkBox25.Checked);
ocm.Parameters.AddWithValue("@31", checkBox26.Checked);
ocm.Parameters.AddWithValue("@32", checkBox27.Checked);
ocm.Parameters.AddWithValue("@33", checkBox28.Checked);
ocm.Parameters.AddWithValue("@34", checkBox29.Checked);
ocm.Parameters.AddWithValue("@35", checkBox30.Checked);
ocm.Parameters.AddWithValue("@36", checkBox31.Checked);
ocm.Parameters.AddWithValue("@37", checkBox32.Checked);
ocm.Parameters.AddWithValue("@38", checkBox33.Checked);
ocm.Parameters.AddWithValue("@39", checkBox34.Checked);
ocm.Parameters.AddWithValue("@40", checkBox35.Checked);
ocm.Parameters.AddWithValue("@41", checkBox36.Checked);
ocm.Parameters.AddWithValue("@42", checkBox37.Checked);
ocm.Connection = null;
ocm.Connection = ocn;
ocn.Open();
ocm.ExecuteNonQuery();
ocn.Close();
ocm.Dispose();
FarsiMessageBox.MessageBox.Show("پیغام", "کاربر جدید با موفقیت ایجاد شد!", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Information);
}
catch (Exception ps)
{
MessageBox.Show(" ثبت ایجاد کاربر با خطای زیر روبرو شده است" + "\n"+"\n" + ps.Message);
}

}






از همه ساس گذارم

hamid_hr
دوشنبه 11 فروردین 1393, 17:19 عصر
ساید به خاطر Year هست
جز کلمات کلیدی هستش به این صورت بنویسید
[Year]

حسین.کاظمی
دوشنبه 11 فروردین 1393, 17:22 عصر
ساید به خاطر Year هست
جز کلمات کلیدی هستش به این صورت بنویسید
[Year]

ممنونم نمیدونم چرا به فکر خودم نرسیده بود !!!! درست شد تشکر دوست عزیزم

hajihamid
سه شنبه 12 فروردین 1393, 18:26 عصر
با سلام
توی نوشتن یه برنامه با این مشکل مواجه شدم و نمیدونم واسه چیه!
این پیغام زمانی که اجرا میکنم میاد!
ممنون میشم توضیح بدین!
117522

Tiam121
سه شنبه 12 فروردین 1393, 18:35 عصر
کوئری که واسه insert نوشتی رو بذار شما تو syntax دستور sql اشتباه چیزی رو تایپ کردی

hajihamid
سه شنبه 12 فروردین 1393, 18:39 عصر
کوئری که واسه insert نوشتی رو بذار شما تو syntax دستور sql اشتباه چیزی رو تایپ کردی
ممنون بابت توجه
من از دیتابیس اکسس استفاده میکنم
و همین برنامه با همین طرز ساختار توی ویژوال استادیو 2010 روی یه سیستم دیگه بدون خطا اجرا میشه!
117523
این نوشتار کامل کجاش اشتباهه دقیقا؟!!

kurdboy2175
سه شنبه 12 فروردین 1393, 18:51 عصر
ببین دوست من یه بار از try و catch استفاده کن شاید مشکلت حل شد امتحانش کن

حسین.کاظمی
سه شنبه 12 فروردین 1393, 19:39 عصر
ممنون بابت توجه
من از دیتابیس اکسس استفاده میکنم
و همین برنامه با همین طرز ساختار توی ویژوال استادیو 2010 روی یه سیستم دیگه بدون خطا اجرا میشه!
117523
این نوشتار کامل کجاش اشتباهه دقیقا؟!!

ببین دوست عزیز احتمالا اشکال از کلمه date(یک کلمه کلیدی است) است اینطوری بنویس [date] ببین مشکلت برطرف میشه یانه؟؟؟؟؟

Tiam121
سه شنبه 12 فروردین 1393, 22:56 عصر
ببین دوست عزیز احتمالا اشکال از کلمه date(یک کلمه کلیدی است) است اینطوری بنویس [date] ببین مشکلت برطرف میشه یانه؟؟؟؟؟
دستور شما که مشکلی نداره من هم با نظر دوستمون موافقم اسم فیلد date رو تغییر بده توی دیتابیس

hajihamid
چهارشنبه 13 فروردین 1393, 00:13 صبح
ببین دوست عزیز احتمالا اشکال از کلمه date(یک کلمه کلیدی است) است اینطوری بنویس [date] ببین مشکلت برطرف میشه یانه؟؟؟؟؟


دستور شما که مشکلی نداره من هم با نظر دوستمون موافقم اسم فیلد date رو تغییر بده توی دیتابیس
متاسفانه با این هم حل نشد...

aslan
چهارشنبه 13 فروردین 1393, 02:01 صبح
متاسفانه با این هم حل نشد...

t@ یا to@ ??????

hajihamid
چهارشنبه 13 فروردین 1393, 23:24 عصر
t@ یا to@ ??????
خوودم متوجه این شدم و حلش کردم ولی از این نبود
مشکل از دیتابیس بود که این مشکل پیش اومد!
که خداروشکر حل شد
الان یه مشکل جدیدتر و عجیب غریب دیگه دارم!!!
میخوام سرچ رو بر اساس کد بذارم ولی بازم این مورد پیش میاد!
اینم شات:
117552

sohil_ww
چهارشنبه 13 فروردین 1393, 23:34 عصر
code like @N اینو امتحان کن

از طرفی هم شما داری رو یه فیلد که از نوع عددی هست عملیات like انجام می دی ؟! (این و از کوتیشن های که برای فیلدت گذاشتی متوجه شدم)
تا اون جای که من می دونم (sql) تست کردم جواب نداد مگر اینکه caste کنیم

Tiam121
چهارشنبه 13 فروردین 1393, 23:49 عصر
داری روی فیلد از نوع عددی like میزنی،شدنی هست اما نه به این روش من با sql انجام دادم

hajihamid
پنج شنبه 14 فروردین 1393, 12:18 عصر
داری روی فیلد از نوع عددی like میزنی،شدنی هست اما نه به این روش من با sql انجام دادم
خودمم قبلا با همین روش جست و جو کردم و موردی نداشته
پیشنهادتون برای یک سرچ سریع چیه؟!

Tiam121
پنج شنبه 14 فروردین 1393, 14:55 عصر
همه اطلاعات جدول رو بر نگردون یعنی فقط ستون هایی که لازم داری و مثلا 10 رکورد بالای جدول
join های زیاد سرعت رو پایین میاره