السلام عليكم
لدي تكست بوكس أعرض فيه رقم فاتورة وهو اخر رقم في جدول استخدم دالة تالية
public static int CODE_GENE_SAFE(string TABLE_NAME, string COLUMN_NAME)
{
int CODE = 0;
using (SqlConnection con = new SqlConnection(sqlCon.ConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(
$"SELECT ISNULL(MAX([{COLUMN_NAME}]), 0) + 1 FROM [{TABLE_NAME}]", con))
{
CODE = Convert.ToInt32(cmd.ExecuteScalar());
}
}
return CODE;
}
لكن المستخدم (A) يضغط جديد → يحصل على الرقم 100.
في نفس اللحظة المستخدم (B) يضغط جديد → يحصل أيضًا على الرقم 100.
المستخدم (A) يحفظ أولًا → يتم حفظ الفاتورة رقم 100.
المستخدم (B) يحفظ بعده → يحدث خطأ لأن الرقم 100 أصبح موجودًا بالفعل.
هل توجد طريقة اخري افضل
txtInvoiceNo.Text = CODE_GENE_SAFE("Invoices", "InvoiceID").ToString();
السؤال
ايمن ميلاد
السلام عليكم
لدي تكست بوكس أعرض فيه رقم فاتورة وهو اخر رقم في جدول استخدم دالة تالية
public static int CODE_GENE_SAFE(string TABLE_NAME, string COLUMN_NAME)
{
int CODE = 0;
using (SqlConnection con = new SqlConnection(sqlCon.ConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(
$"SELECT ISNULL(MAX([{COLUMN_NAME}]), 0) + 1 FROM [{TABLE_NAME}]", con))
{
CODE = Convert.ToInt32(cmd.ExecuteScalar());
}
}
return CODE;
}
لكن المستخدم (A) يضغط جديد → يحصل على الرقم 100.
في نفس اللحظة المستخدم (B) يضغط جديد → يحصل أيضًا على الرقم 100.
المستخدم (A) يحفظ أولًا → يتم حفظ الفاتورة رقم 100.
المستخدم (B) يحفظ بعده → يحدث خطأ لأن الرقم 100 أصبح موجودًا بالفعل.
هل توجد طريقة اخري افضل
txtInvoiceNo.Text = CODE_GENE_SAFE("Invoices", "InvoiceID").ToString();
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.