PDA

View Full Version : مشکل در زمان ثبت از طریق دیتاگرید



programerinfonet
یک شنبه 22 دی 1392, 14:56 عصر
سلام من میخوام از طریق دیتاگرید تو بانک عمل insert انجام بدم اما این پیغام خطا رو میده
115255

اینم کدمه

adap.InsertCommand = new SqlCommand("INSERT INTO Table_Model (Berand_ID,Model) VALUES ("+Convert.ToInt32( INT_BERANDID)+",@Model)", cn);
adap.InsertCommand.Parameters.AddWithValue("@Model", typeof(string)).SourceColumn = "Model";

در ضمن اون فیلد "Berand_ID" تو بانک از نوع Int تعریف شده است .
لطفأ کمکم کنید بگید که مشکل این کد چیه ؟
مرسی

khokhan
یک شنبه 22 دی 1392, 15:45 عصر
سلام من میخوام از طریق دیتاگرید تو بانک عمل insert انجام بدم اما این پیغام خطا رو میده
115255

اینم کدمه

adap.InsertCommand = new SqlCommand("INSERT INTO Table_Model (Berand_ID,Model) VALUES ("+Convert.ToInt32( INT_BERANDID)+",@Model)", cn);
adap.InsertCommand.Parameters.AddWithValue("@Model", typeof(string)).SourceColumn = "Model";

در ضمن اون فیلد "Berand_ID" تو بانک از نوع Int تعریف شده است .
لطفأ کمکم کنید بگید که مشکل این کد چیه ؟
مرسی
یه متغیر از نوع int بیرون از کوئری ایجاد کن با همون مقدار بعد توی کوئری فقط نام متغییر رو بنویس
در ضمن شما در کوئری به دو مورد فیلد اشاره کردین اما تعداد پارامترها یه دونه هست

programerinfonet
یک شنبه 22 دی 1392, 16:10 عصر
یه متغیر از نوع int بیرون از کوئری ایجاد کن با همون مقدار بعد توی کوئری فقط نام متغییر رو بنویس
در ضمن شما در کوئری به دو مورد فیلد اشاره کردین اما تعداد پارامترها یه دونه هست
دقیقأ همون کارو کردم دیگه بی طحمت کد رو کامل تر ببینید

programerinfonet
یک شنبه 22 دی 1392, 19:47 عصر
کسی نیست کمک کنه ؟
من خیلی کارم فوریه
توروخدا یکی بیاد کمک کنید

forodo
یک شنبه 22 دی 1392, 19:53 عصر
سلام
فقط این واسه اکسسه. شما اسکیوالش کنید.

OleDbCommand objcommand1 = new OleDbCommand();

objcommand1.Connection = objconnection;

objconnection.Open();

objcommand1.CommandText = @"INSERT INTO tblBuyRequestServises(
ThingsDesc, Counts, Descs,BuyRequestID)
VALUES(
@ThingsDesc, @Counts, @Descs,@BuyRequestID)";

for (int i = 0; i < dgv1.Rows.Count - 1; i++)
{
objcommand1.Parameters.Clear();
objcommand1.Parameters.AddWithValue("@ThingsDesc", dgv1.Rows[i].Cells["C2"].Value.ToString());
objcommand1.Parameters.AddWithValue("@Counts", dgv1.Rows[i].Cells["C3"].Value.ToString());
objcommand1.Parameters.AddWithValue("@Descs", dgv1.Rows[i].Cells["C4"].Value.ToString());

objcommand1.ExecuteNonQuery();
}

objconnection.Close();

khokhan
یک شنبه 22 دی 1392, 19:57 عصر
کسی نیست کمک کنه ؟
من خیلی کارم فوریه
توروخدا یکی بیاد کمک کنید
عمل اینسرت ردیفهای گرید در کدام رویداد می خواهید انجام بگیره؟
حتما بایستی از طریق کلاس SqlParameter استفاده بشه؟ یعنی به عبارتی خیلی آسون با یه حلقه for خیلی آسون می تونین این کار رو انجام بدین!!!
اگه قصد دارین بلافاصله پس از درج در دیتا گرید و همزمان با آن عمل ثبت در بانک هم انجام بشه بایستی در یه رویداد مناسب کدهاتونو بنویسین

programerinfonet
یک شنبه 22 دی 1392, 20:53 عصر
بله من میخوام به محض درج در دیتاگرید ثبت و یا ویرایش گردد اما به این شکل که یک سطر به طور دستی وارد شود و سطر بعدی از کمبوباکس دریافت شود