PDA

View Full Version : خطای syntax error for insert در اکسس



wolf_majid
سه شنبه 21 آبان 1392, 12:59 عصر
سلام
هنگام ذخیره داده در اکسس با پیغام زیر روبرو میشم
کسی دلیلش رو میدونه لطف کنه بهم بگه

Abbas Amiri
سه شنبه 21 آبان 1392, 19:41 عصر
هنگام ذخیره داده در اکسس با پیغام زیر روبرو میشم
کسی دلیلش رو میدونه لطف کنه بهم بگه

عبارت Insert Into را در یک متغیر رشته ای بدست بیاورید و آن را نمایش دهید تا بررسی شود. ضمنا دیتا تایپ فیلدهای آن را هم مشخص کنید. تا syntax آن ارزیابی شود.

wolf_majid
چهارشنبه 22 آبان 1392, 11:06 صبح
ممنون بابت پاسختون

به عکس های زیر نگاه کنید
اول اینکه این بانک طراحی من نیست و تا حالا با اکسس کار نکردم و نمیدونم چطور توی فیلد اداره کل که از نوع بایته مثل کامبو باکس توی C#‎‎‎‎‎ مقدار دهی میشه (رشته نمایش میده) ولی من عدد براش ارسال کردم
به تصاویر زیر نگاه کنید
---------------------------------------
112772
---------------------------------------
112773
---------------------------------------
112774
و در پایان باز هم همون خطا رو میده

Abbas Amiri
چهارشنبه 22 آبان 1392, 16:00 عصر
ممنون بابت پاسختون

به عکس های زیر نگاه کنید
اول اینکه این بانک طراحی من نیست و تا حالا با اکسس کار نکردم و نمیدونم چطور توی فیلد اداره کل که از نوع بایته مثل کامبو باکس توی C#‎‎‎‎‎ مقدار دهی میشه (رشته نمایش میده) ولی من عدد براش ارسال کردم
به تصاویر زیر نگاه کنید
---------------------------------------
112772
---------------------------------------
112773
---------------------------------------
112774
و در پایان باز هم همون خطا رو میده

به این صورت نمی توان اشکال یابی کرد . ولی از مهمترین اشکالاتی که در این دستور بوجود می آید

- تعداد نامساوی فیلدها در رشته مربوط به مبدا و مقصد
- جابجا بودن فیلدهای متناظر در دورشته
- عدم استفاده از کوتیشن قبل و بعد متغیرهای نوع رشته(Text)
- عدم استفاده از # قبل و بعد متغیرهای نوع تاریخ(Date)
و ...

wolf_majid
چهارشنبه 22 آبان 1392, 16:55 عصر
تعدادشون رو بررسی کردم یکی بودند
برای رشته ها ' هم گذاشتم
جابجاییشون رو هم بررسی کردم بازم نشد
براتون میفرستمش ممنون میشم راهنماییم کنید

Abbas Amiri
چهارشنبه 22 آبان 1392, 18:15 عصر
تعدادشون رو بررسی کردم یکی بودند
برای رشته ها ' هم گذاشتم
جابجاییشون رو هم بررسی کردم بازم نشد
براتون میفرستمش ممنون میشم راهنماییم کنید

متاسفانه ورژن VS بنده 2010 هست ولی کدهای بعد از قسمت VALUES را مانند آن خطی که در زیر اصلاح شده تغییر دهید و نتیجه را اعلام کنید:

" VALUES('" + @companyNameField + "','" + @oldEconomicNoField + "','" + @newEconomicNoField + "','" + @nationalCodeField + "'" +

wolf_majid
چهارشنبه 22 آبان 1392, 18:47 عصر
به صورت بالا در vs نمیشه
اما به صورت زیر هم خطا میده (همون خطا رو)

"insert into Moshakhasat(companyNameField,oldEconomicNoField,ne wEconomicNoField,nationalCodeField" +
",taxPayerTypeField,postalCodeField,countryField,te lCodeField,telNoField,faxNoField" +
",registrationNoField,hozehField,Address,ShahrCode, EdareKolCode,UserName,Band,SabteNam) values (" +
"'@companyNameField','@oldEconomicNoField','@newEco nomicNoField','@nationalCodeField'" +
",'@taxPayerTypeField','@postalCodeField','@country Field','@telCodeField','@telNoField','@faxNoField'" +
",'@registrationNoField','@hozehField','@Address',@ ShahrCode,@EdareKolCode,'@UserName',@Band,@SabteNa m)";

تمامی فیلدهای رشته ای را داخل '' گذاشتم

wolf_majid
پنج شنبه 23 آبان 1392, 09:27 صبح
دوستان تمامی راه های زیر رو امتحان کردم به نتیجه نرسیدم
ویندوز 8 و 7 امتحان کردم
readonly نبود
کوتیشن برای رشته ها گذاشتم
بدون پارامتر و با پارامتر امتحان کردم
update هم همین خطا رو میده (با خطای نحوی update)
جابجایی و تعداد فیلدها رو بررسی کردم
امتحان کردم کانکشن باز بود (برای فارسی بودن پوشه ها هم امتحان کردم)
کلمات کلیدی را داخل [] گذاشتم

من که دیگه مغزم نمیکشه
لطفا" اگر کسی راه حلی داره بگه (شدیدا" بهش نیاز دارم)

Abbas Amiri
پنج شنبه 23 آبان 1392, 13:16 عصر
دوستان تمامی راه های زیر رو امتحان کردم به نتیجه نرسیدم
ویندوز 8 و 7 امتحان کردم
readonly نبود
کوتیشن برای رشته ها گذاشتم
بدون پارامتر و با پارامتر امتحان کردم
update هم همین خطا رو میده (با خطای نحوی update)
جابجایی و تعداد فیلدها رو بررسی کردم
امتحان کردم کانکشن باز بود (برای فارسی بودن پوشه ها هم امتحان کردم)
کلمات کلیدی را داخل [] گذاشتم

من که دیگه مغزم نمیکشه
لطفا" اگر کسی راه حلی داره بگه (شدیدا" بهش نیاز دارم)

به همان روش پست 6 به طریق زیر عمل کنید ولی بدون ایجاد پارامتر . یعنی خطهای بعدی(افزودن پارامتر) رو حذف کنید .

" VALUES('" + txtName.Text + "','" + txtCodeEghtesadiPishin.Text + "','" + string.Empty + "','" + txtNationalCode.Text + "'" +

در اکسس هم تقریبا به همین روش جواب میدهد.

wolf_majid
پنج شنبه 23 آبان 1392, 13:42 عصر
ممنون که پیگیری می کنید
بازم جواب نداد
string strCmdMosh =
"insert into Moshakhasat(companyNameField,oldEconomicNoField,ne wEconomicNoField,nationalCodeField" +
",taxPayerTypeField,postalCodeField,countryField,te lCodeField,telNoField,faxNoField" +
",registrationNoField,hozehField,[Address],ShahrCode,EdareKolCode,[UserName],Band,SabteNam) VALUES ('" +
txtName.Text + "','" + txtCodeEghtesadiPishin.Text + "','" + string.Empty + "','" + txtNationalCode.Text +
"','" + "1"+ "','" + txtPostalCode.Text + "','" + string.Empty + "','" + string.Empty + "','" + txtTell.Text +
"','" + string.Empty+ "','" + string.Empty + "','" + "0" + "','" + txtAddress.Text + "',"
+ (decimal) cmbShar.SelectedValue +"," + 20+ ",'" + txtUsername.Text + "'," +
bandNum + "," + (byte) cmbSabteNameCodeEghtesadi.SelectedIndex;

wolf_majid
جمعه 24 آبان 1392, 11:58 صبح
لطفا" این کد رو بررسی کنید بهم بگید چرا مشکل داره؟ :عصبانی++:
فقط فیلدهای لازمش رو آوردم

string str =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\TTMS.mdb";
using (OleDbConnection con = new OleDbConnection(str))
{
OleDbCommand cmMoshakhasat = new OleDbCommand("insert into Moshakhasat(ShahrCode,Band,SabteNam) " +
" VALUES(@ShahrCode,@Band,@SabteNam)", con);

cmMoshakhasat.Parameters.Add("@ShahrCode", OleDbType.Decimal).Value = 2001000;
cmMoshakhasat.Parameters.AddWithValue("@Band", 2);
cmMoshakhasat.Parameters.AddWithValue("@SabteNam", 0);

if (con.State == ConnectionState.Closed)
con.Open();
try
{
cmMoshakhasat.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

اینم بانکش :
http://www.4shared.com/rar/-i1eTmoo/TTMS.html

wolf_majid
جمعه 24 آبان 1392, 13:33 عصر
از آقای عباس امیری خیلی خیلی سپاسگدارم

مشکل با ؟ در قسمت values حل شد
اما یک سوال برای من موند
وقتی من ؟ (placeholder اگر اشتباه نکنم) میگذارم از کجا متوجه میشود نام پارامترهای من چیست که مقادیر رو درون آنها قرار دهد