PDA

View Full Version : عدم رفرش دیتابیس هنگام خطا



علی فتحی
جمعه 03 اسفند 1397, 23:20 عصر
با سلام من برای ثبت از کد زیر استفاده میکنم ولی هنگام وارد کردن کلید اصلی تکراری اخطار داد با رفع خطا هم بازم همون اخطار تکرار میشه مگر اینکه فرم را دوباره باز و بسته کنم
مشکل چطوری رفع میشه؟

try {


SqlCommand com = new SqlCommand("INSERT INTO [dbo].[Thagigi] ([name], [family], [shsh], [sadere], [tavalod]) VALUES (@name, @family, @shsh, @sadere, @tavalod)", con);
com.Parameters.AddWithValue("@name", textBox1.Text);
com.Parameters.AddWithValue("@family", textBox2.Text);
com.Parameters.AddWithValue("@shsh", textBox3.Text);
com.Parameters.AddWithValue("@sadere", textBox4.Text);
com.Parameters.AddWithValue("@tavalod", maskedTextBox1.Text);

con.Open();
com.ExecuteNonQuery();
con.Close();



}
catch
{
MessageBox.Show("کد تکراریست");
return;
}

علی فتحی
یک شنبه 05 اسفند 1397, 13:57 عصر
سلام سول رو متوجه نشدید یا کسی جوابی برای این نداره:؟

mr.sirwan
یک شنبه 05 اسفند 1397, 14:09 عصر
شما اول پیغامی که توی بدنه catch دریافت میکنین رو بررسی کنین، از کجا معلوم به خاطر تکراری بودن کد باشه؟

mr.sirwan
یک شنبه 05 اسفند 1397, 14:30 عصر
برای نمایش پیغام تکراری بودن کد در مواقعی که واقعا این خطا رخ داده، قبل از catch اصلی باید از یه catch دیگه استفاده کنید به اینصورت:

try
{
// کدهاتون
}
catch (SqlException sqlException)
{
// میتونید استثناهای اسکیوال رو با کدشون هندل کنید
// کد 2601 مربوط به درج رکورد تکراری هست
if (sqlException.Number == 2601)
MessageBox.Show("کد تکراریست");
return;
}
catch (exception ex)
{
MessageBox.Show(ex.Message);
return;
}

علی فتحی
سه شنبه 07 اسفند 1397, 16:08 عصر
با تشکر از اقای سیروان نه بررسی کردم دقیقا بخاطر تکرار کد هستش وقنی id رو که کلید اطلی است تکرار بشه به اخطار ختم میشه وگر نه مشکلی برای ثبت نداره فقط مشکل اینه که رفرش نمیشه همون اخطار درحافظه میمونه .
در ضمن همون برنامه را با linq نوشتم مشکلی نداره مثلا اگر کد 4 رو تکراری زدم اخطار میده اگر 5 رو وارد کردم ثبت میکنه اما در این کد 5 هم بزنم بازم همون اخطار رو میده مگر اینکه فرم را بسته و باز کنم.
اونی که شما فرمودین همان مورد اخطار در اون مسیر کش اول نگه داری میشه

Mahmoud Zaad
سه شنبه 07 اسفند 1397, 16:24 عصر
سلام
در کد بالا که هیچ idی وجود نداره.

علی فتحی
پنج شنبه 16 اسفند 1397, 14:25 عصر
ای داد :اشتباه: بر بی خبران کشکک صلوات اقا محمد عزیز زدالو بیا گلو نیست کد ها رو که فرضی کپی کردم اصل سول چیز دیگه ست عزیزم شما فرض کن که داره ؟ ای داد از دست این برنامه نویسان این قدر کد نویسی کردیم طوطی وار یا گرفتیم

Mahmoud.Afrad
پنج شنبه 16 اسفند 1397, 14:47 عصر
متن خطا رو بزارید.

Mahmoud Zaad
پنج شنبه 16 اسفند 1397, 15:43 عصر
ای داد :اشتباه: بر بی خبران کشکک صلوات اقا محمد عزیز زدالو بیا گلو نیست کد ها رو که فرضی کپی کردم اصل سول چیز دیگه ست عزیزم شما فرض کن که داره ؟ ای داد از دست این برنامه نویسان این قدر کد نویسی کردیم طوطی وار یا گرفتیم
:متفکر: خیلی جالبه که شما با این سطح از معلومات این حرفو به بنده بزنی!

محمد آشتیانی
شنبه 18 اسفند 1397, 08:50 صبح
ای داد :اشتباه: بر بی خبران کشکک صلوات اقا محمد عزیز زدالو بیا گلو نیست کد ها رو که فرضی کپی کردم اصل سول چیز دیگه ست عزیزم شما فرض کن که داره ؟ ای داد از دست این برنامه نویسان این قدر کد نویسی کردیم طوطی وار یا گرفتیم

سلام
کسی با فرض به شما جواب نمیده آقا فتحی
لزوما باید سوالتون رو درست و کامل مطرح کنید تا پاسخ دقیق دریافت کنید. هر جزئیاتی که لازمه رو باید بگید ، هر کدی که مربوط به مشکلتون نوشتید و هرچیز دیگری.

ضمنا ، شما از کسی طلبکار نیستید و باید مودبانه با دیگران صحبت بفرمائید.

davidrobert
یک شنبه 19 اسفند 1397, 18:00 عصر
سلام خوب هستیید آقای فتحی عزیز دوست گرامی به جای اینکه شما موقع ثبت ببنید تکراری هستش قبل از ثبت به وسیله DataTable اطلاعات بگیرید و بررسی کنید اگه تو کوئری شما تعداد سطر بزرگ تر از صفر هستش تکراری و اگه صفر بود مشکلی نیست ثبت میکنه و این مورد هم بگم اگه برای بررسی اطلاعات از ویو استفاده کنید بررسی همون لحظه انجام نمیده باید فرم ببنید و دوباره باز کنید به شما جواب بده که این مورد یک ایراد از سمت ویو هستش که همون لحظه به روز نمیشه اگه از پروسیجر و یا کوئری مستقیم استفاده کنید با این مشکل برخورد نمیکنید تو کوئری هم همون لحظه به شما اطلاع میده مقدار تکراری هستش. و بنده تلگرام آنلاین هستم به بنده خواستید پیغام بدید این طوری سریع تر به جواب برسید دوست عزیز.