הבעיה ברורה עתה (אני חושב)
כאשר אתה שולח שאילתה של הוספה של נתונים לטבלה אתה רוצה לקבל אינפורמציה על התוצאה.
הגישה הנפוצה היא קודם לבדוק את הנתונים (ואלידציה) ורק אחרי שהם תקינים להעביר אותם לטבלה (כולל בדיקת כפילויות שניתן לבצע ב AJAX ברקע לפני ששולחים את השאילתה של ה INSERT).
דרך יפה לבצע את מה שאתה רוצה זה פשוט לבדוק כמה רשומות הושפעו מהשאילתה שלך בעזרת המשתנה @@ROWCOUNT של SQL. אתה יכותל לעבוד עם פרוצדורה שתקבל את הפרמטרים שאתה רוצה להכניס לרשומה ותחזיר את מספר הרשומות שהושפעו.
עבודה עם @@ROWCOUNT אתה יכול רלאות כאן לדוגמה
http://stackoverflow.com/questions/2272733/how-to-get-number-of-rows-inserted-by-a-transaction
והדרך הנכונה בדרך כלל היא פשוט לעבוד ישירות עם הודעות השיאה שחוזרות מהשרת. אם אתה נעזר ב ExecuteNonQuery הרי שאתה לא מקבל חזרה אינפורמציה של דטא אבל הרבה מאוד אינפורמציה כן חוזרת. אתה יכול לעבוד עם בלוק TRY ולקבל רק "הצלחה" או "כישלון". אבל אתה יכול גם לבדוק כשלונות מסויימים כמו SqlException.
Try {
// code here
}
catch (SqlException odbcEx) {
// Handle more specific SqlException exception here.
}
catch (Exception ex) {
// Handle generic ones here.
}