PDA

View Full Version : سوال: مشکل در ذخیره اطلاعات در بانک برای دفعه دوم



iran_sky
پنج شنبه 08 دی 1390, 21:13 عصر
با سلام به دوستان
دوستان من با این کد اطلاعات رو در بانک ذخیره میکنم اما دوبار که اطلاعات وارد میکنم برای دفعه دوم این پیغام خطا رو میده

کد:

try
{
cmd.Connection = conn;
cmd.CommandText = "update moshtare set code_moshtare=@code_moshtare, name=@name, family=@family, code_meli=@code_meli,tel=@tel, city=@city, t_vorod=@t_vorod, time_e=@time_e, t_takht=@t_takht, gh_otagh=@gh_otagh, pish=@pish, mod=@mod where code_moshtare=@code_moshtare";
cmd.Parameters.AddWithValue("code_moshtare",Convert.ToInt16( text_code_moshtare.Text));
cmd.Parameters.AddWithValue("name", text_name.Text);
cmd.Parameters.AddWithValue("family",text_family.Text);
cmd.Parameters.AddWithValue("code_meli",Convert.ToInt64( text_code_meli.Text));
cmd.Parameters.AddWithValue("tel", text_tel.Text);
cmd.Parameters.AddWithValue("city", text_city.Text);
cmd.Parameters.AddWithValue("t_vorod", text_t_vorod.Text);
cmd.Parameters.AddWithValue("time_e",Convert.ToInt16( text_time_e.Text));
cmd.Parameters.AddWithValue("t_takht",Convert.ToInt16( text_t_takht.Text));
cmd.Parameters.AddWithValue("gh_otagh", Convert.ToInt64(text_gh_otagh.Text));
cmd.Parameters.AddWithValue("pish",Convert.ToInt64(text_pish.Text));
cmd.Parameters.AddWithValue("mod", Convert.ToInt64(text_mod.Text));
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
ds.Clear();
dta.Fill(ds, "moshtare");
dgv_moshtare.DataSource = ds;
dgv_moshtare.DataMember = "moshtare";
}
catch (Exception)
{

throw;
}

عکس خطا:

system32
پنج شنبه 08 دی 1390, 21:47 عصر
1- اسم پارامترهاتو همنام اسم فیلدها نزار. مثلا بزار p0,p1 و الی آخر.
2- همیشه قبل از اینکه بانک را open کنید چک کنید آیا قبلا بانک باز شده یا نه وگرنه خطا می ده.

iran_sky
پنج شنبه 08 دی 1390, 22:02 عصر
1- اسم پارامترهاتو همنام اسم فیلدها نزار. مثلا بزار p0,p1 و الی آخر.
2- همیشه قبل از اینکه بانک را open کنید چک کنید آیا قبلا بانک باز شده یا نه وگرنه خطا می ده.

ممنون دوست عزیز
این پیغام خطا مربوط به چه مشکلیه؟
و اینکه چطوری چک کنم که بانک open هست یا نه؟

system32
پنج شنبه 08 دی 1390, 22:12 عصر
این پیغام خطا به خاطر مورد 1 که کفتم

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

if (con.IsClose)
{
con.Open();
}

iran_sky
پنج شنبه 08 دی 1390, 22:50 عصر
دوست عزیز اگر در دستور insert از پارامتر خود اسم فیلد ندیم پیغام خطا میده که باید تعریف بشه اون نامی که دادیم

system32
پنج شنبه 08 دی 1390, 23:43 عصر
اینطوری بنویسید: (فقط برای یک پارامتر می گم برای بقیه هم مثل همین یکیه) { cmd.Connection = conn; cmd.CommandText = "update moshtare set code_moshtare=@p1 where code_moshtare=@code_moshtare"; cmd.Parameters.AddWithValue("p1",Convert.ToInt16(text_code_moshtare.Text)); if (conn.IsClose) { conn.Open(); } cmd.ExecuteNonQuery(); conn.Close(); ds.Clear(); dta.Fill(ds, "moshtare"); dgv_moshtare.DataSource = ds; dgv_moshtare.DataMember = "moshtare"; } catch (Exception) { throw; }

iran_sky
جمعه 09 دی 1390, 09:09 صبح
دوست عزیز من به شکل کدی که شما گفتین تغییر دادم اما این پیغم خطا و همچنین پیغم خطا بالا رو میده
کد:
79886

خطا اول:
79887
خطای دوم همان شکل پست اولمه

system32
جمعه 09 دی 1390, 10:11 صبح
نه اینطوری نه

من که گفتم برای یکیش می گم برای بقیه را خودتون اعمال کنید.
باید برای بقیه فیلدها هم مثلا بزارید p2,p3 و ال آخر بعد هم تو AddParameter مثل نمونه اول که انجام دادید اونارو تعریف کنید. اینو انجام بدید
حالا بریم سراغ پیغام دومی
یکبار پروژتون رو Rebuild کنید. یا یکبار برنامه را ببندید و دوباره باز کنید

iran_sky
جمعه 09 دی 1390, 10:56 صبح
دوست عزیز تغییراتی که گفتی اعمال کردم اما باز هم همون پیغام پست اولو میده

system32
جمعه 09 دی 1390, 12:18 عصر
می تونید کدی که تغییر دادید را بزارید ببینم.