PDA

View Full Version : سوال: مشکل در کد دستور insert در پایگاه داده Access



nadia.g
یک شنبه 26 آذر 1391, 14:36 عصر
سلام .چرا وقتی کد زیر را در C# مینویسم ارور Syntax error in INSERT INTO statement. میده؟؟؟؟؟؟؟
نام پایگاه داده و جدول و فیلدها هم صحیح است... قبلا درست کار میکرده...





OleDbCommand cmd1 = new OleDbCommand();
cmd1.Connection = con;
cmd1.CommandText = "insert into infostudent(stID,stname,stfamily,group,stcodemelly ,stbirthday,stphone,stotherphone,staddress)" + "values(@stID,@stname,@stfamily,@group,@stcodemelly ,@stbirthday,@stphone,@stotherphone,@staddress)".ToString();
cmd1.CommandType = CommandType.Text;
cmd1.Parameters.AddWithValue("@stID", stID.Text);
cmd1.Parameters.AddWithValue("@stname", stname.Text);
cmd1.Parameters.AddWithValue("@stfamily", stfamily.Text);
cmd1.Parameters.AddWithValue("@group", group.Text);
cmd1.Parameters.AddWithValue("@stcocemelly", stcode.Text);
cmd1.Parameters.AddWithValue("@stbirthday", stbirthday.Text);
cmd1.Parameters.AddWithValue("@stphone", stphone.Text);
cmd1.Parameters.AddWithValue("@stotherphone", stotherphone.Text);
cmd1.Parameters.AddWithValue("@staddress", staddress.Text);
con.Open();
cmd1.ExecuteNonQuery();
con.Close();

ordebehesht
یک شنبه 26 آذر 1391, 14:43 عصر
.ToString();
این یعنی چی اونی که وار میشه خودش رشته هستش دیگه چرا دوباره تبدیل میکنی

cmd1.Parameters.AddWithValue("@stcocemelly", stcode.Text); این چیه چیزی که بالا دادی stcodemelly هستش اینجا یه چی دیگه دادی

ببین درست میشه

nadia.g
یک شنبه 26 آذر 1391, 14:53 عصر
tostring() و بیخیال...
ولی بقیش درسته که.....

vira1368
یک شنبه 26 آذر 1391, 15:12 عصر
سلام
خط اول رو درست کنید:
OleDbCommand cmd1 = new OleDbCommand();
new OleDbCommand رو بهم چسبوندید
و CommandText رو هم اینطور بنویسید "insert into infostudent(stID, stname) values(@stID, @stname)"
چون همش رشته هستن نه لازمه بهم بچسبونید نه تبدیل به رشته کنید.

در ضمن con رو سراسری تعریف کردین و مقدارش درسته؟؟؟

cherchil_hra
یک شنبه 26 آذر 1391, 15:15 عصر
اسم پارامترتون رو درست کنید. موقع مقدار دهی
cmd1.Parameters.AddWithValue("@stcocemelly", stcode.Text);

بالا از پارامتری به نام stcodemelly استفاده کردی نه stcocemell

ordebehesht
یک شنبه 26 آذر 1391, 15:20 عصر
tostring() و بیخیال...
ولی بقیش درسته که.....
میدونم درسته اونی رو که گفتم درست کن stcocemelly اینو با این عوض کن
stcodemelly

ordebehesht
یک شنبه 26 آذر 1391, 15:22 عصر
سلام
خط اول رو درست کنید:
OleDbCommand cmd1 = new OleDbCommand();
new OleDbCommand رو بهم چسبوندید
و CommandText رو هم اینطور بنویسید "insert into infostudent(stID, stname) values(@stID, @stname)"
چون همش رشته هستن نه لازمه بهم بچسبونید نه تبدیل به رشته کنید.

در ضمن con رو سراسری تعریف کردین و مقدارش درسته؟؟؟

متن خطا یه چیز دیگس که مربوط به ورودی های دستوره

nadia.g
یک شنبه 26 آذر 1391, 17:06 عصر
ممنون از پاسختون. تمام مواردی و که گفتین و اعمال کردم ولی جواب نداد. برای update هم این ارور و میده(Syntax error in UPDATE statement.) به جای پارامتر هم از خود متغیر ها استفاده کردم. ولی باز هم همین ارور و میده؟؟؟



private void btnupdateinfo_Click(object sender, EventArgs e)
{
OleDbCommand cmd1 = new OleDbCommand();
cmd1.Connection = con;


cmd1.CommandText = "update infostudent set stname=@stname ,stfamily=@stfamily , group=@group , stcocemelly=@stcocemelly , @tbirthday=@stbirthday , stphone=@stphone , stotherphone=@stotherphone , staddress=@staddress where stID=@stID ";
cmd1.CommandType = CommandType.Text;
cmd1.Parameters.AddWithValue("@stID", stID.Text);

cmd1.Parameters.AddWithValue("@stname", stname.Text);
cmd1.Parameters.AddWithValue("@stfamily", stfamily.Text);
cmd1.Parameters.AddWithValue("@group", group.Text);
cmd1.Parameters.AddWithValue("@stcocemelly", stcode.Text);
cmd1.Parameters.AddWithValue("@stbirthday", stbirthday.Text);
cmd1.Parameters.AddWithValue("@stphone", stphone.Text);
cmd1.Parameters.AddWithValue("@stotherphone", stotherphone.Text);
cmd1.Parameters.AddWithValue("@staddress", staddress.Text);
con.Open();
cmd1.ExecuteNonQuery();
con.Close();
}

ordebehesht
یک شنبه 26 آذر 1391, 17:12 عصر
فرمت فیلد عا تو جدولت چیه پارامترهات اینجا دارن به صورت رشته وارد میشن دقت کن شاید میدان و طول اعداد رو تو جدولت متغیر کردی

nadia.g
یک شنبه 26 آذر 1391, 17:38 عصر
نه اونا هیچ تغییری نکردن....

ordebehesht
یک شنبه 26 آذر 1391, 20:27 عصر
ببین یه کاری کن همه فیلداتو اجازه به ده مقدار null ر و قبول کنه بعد تک تک مقدار وارد کن ببین تو کدوم پارامتر ارور میده خطا اونجاست گرفتی چی میگم

ordebehesht
یک شنبه 26 آذر 1391, 20:28 عصر
میشه یه عکسی از جدولت بدی ساختار فیلدها منظورم هستش