ازي احفظ قيم فارغة في قاعدة البيانات - mazentq - 11-02-22
السلام عليكم ورحمة الله وبركاته
فى البرنامج بتاعى عملت استيراد بيانات من اكسيل وشغالة تمام اوي وهى عن طريق اختيار اعمدة الاكسيل من ليست بوكس واضافتها في قاعدة البيانات
بس طبعا مش شرط المستخدم يحدد كل الاعمدة ممكن يختار جزء فابالتالى الي مش هيختاره هيتحفظ فاضي
مثلا:
زي الصورة كدة ان مثلا اخترت كل البيانات من شيت الاكسيل بس مش هختار الملاحظات علشان مش عاوزة عاوز بقى لما يستورد البيانات يحفظ الملاحظات بس فاضة
الكود الي مستخدمة
كود :
for (int i = 0; i < DgvSearch.Rows.Count; i++)
{
if (Con.State == ConnectionState.Closed)
{
Con.Open();
}
tbl3 = db3.readData("select max (Sup_ID) from Suppliers", "");
Cmd3 = new SqlCommand("insert into Suppliers (Sup_ID,Sup_Name,Compny_Name,Sup_Adderss,Sup_Phone,Notes) Values (@Sup_ID,@Sup_Name,@Compny_Name,@Sup_Adderss,@Sup_Phone,@Notes)", Con);
if ((Convert.ToInt32(tbl3.Rows[0][0]) + 1).ToString() == null)
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_ID", SqlDbType.Int)).Value = DBNull.Value;
}
else
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_ID", SqlDbType.Int)).Value = (Convert.ToInt32(tbl3.Rows[0][0]) + 1).ToString();
}
if (cbx2.SelectedIndex <= -1)
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_Name", SqlDbType.VarChar)).Value = DBNull.Value ;
}
else
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_Name", SqlDbType.VarChar)).Value = DgvSearch.Rows[i].Cells[cbx2.SelectedIndex].Value;
}
if (cbx3.SelectedIndex <= -1)
{
Cmd3.Parameters.Add(new SqlParameter("@Compny_Name", SqlDbType.VarChar)).Value = DBNull.Value;
}
else
{
Cmd3.Parameters.Add(new SqlParameter("@Compny_Name", SqlDbType.VarChar)).Value = DgvSearch.Rows[i].Cells[cbx3.SelectedIndex].Value;
}
if (cbx4.SelectedIndex <= -1)
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_Adderss", SqlDbType.VarChar)).Value = DBNull.Value;
}
else
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_Adderss", SqlDbType.VarChar)).Value = DgvSearch.Rows[i].Cells[cbx4.SelectedIndex].Value;
}
if (cbx5.SelectedIndex <= -1)
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_Phone", SqlDbType.VarChar)).Value = DBNull.Value;
}
else
{
Cmd3.Parameters.Add(new SqlParameter("@Sup_Phone", SqlDbType.VarChar)).Value = DgvSearch.Rows[i].Cells[cbx5.SelectedIndex].Value;
}
if (cbx6.SelectedIndex <= -1)
{
Cmd3.Parameters.Add(new SqlParameter("@Notes", SqlDbType.VarChar)).Value = DBNull.Value;
}
else
{
Cmd3.Parameters.Add(new SqlParameter("@Notes", SqlDbType.VarChar)).Value = DgvSearch.Rows[i].Cells[cbx6.SelectedIndex].Value;
}
Cmd3.ExecuteNonQuery();
Con.Close();
}
XtraMessageBox.Show("تم إستيراد بيانات الموردين بنجاح ", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information);
SelectAll_Table3();
}
طبعا لما اجي انفذ الكود ده فهو فعلا بيحفظ معايا كله تمام وحتي لو سايب ليست بوكس فاضية فبيحفظ عادي بس للاسف بيجبلى الرسالة دي
وطبعا الحل فى الرسالة دي هو اغير جلمة ال if الي في الكود الي فوق الى الاتى:
كود :
if (DgvSearch.Rows[i].Cells[cbx5.SelectedIndex].Value == null)
{
Cmd3.Parameters.Add(new SqlParameter { ParameterName = "@Notes", Value = DBNull.Value });
}
else
{
Cmd3.Parameters.Add(new SqlParameter { ParameterName = "@Notes", Value = DgvSearch.Rows[i].Cells[cbx5.SelectedIndex].Value });
}
بس للاسف لما اغيرها لكدة مش بيرضي يحفظ قيم فارغة خالص
وبيجب الرسالة دي
لو حد عنده حل للمشكلة دي او عنده فكره ياريت يفيدنا وشكرا
RE: ازي احفظ قيم فارغة في قاعدة البيانات - Taha Okla - 15-02-22
وعليكم السلام ورحمة الله وبركاته
خلي البرنامج عندك يقرأ القيم في المربعات قبل الحفظ
فإذا كانت فارغة ("") يقوم باستبدالها بقيمة ما ولتكن الشرطة "داش" مثلاً ("-") وليحفظ الشرطة عندها برنامجك في قاعدة البيانات.
وبهذا لن تجد مشكلة في الحفظ ولا في استعراضها حين الحاجة.
RE: ازي احفظ قيم فارغة في قاعدة البيانات - mazentq - 15-02-22
(15-02-22, 08:54 PM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته
خلي البرنامج عندك يقرأ القيم في المربعات قبل الحفظ
فإذا كانت فارغة ("") يقوم باستبدالها بقيمة ما ولتكن الشرطة "داش" مثلاً ("-") وليحفظ الشرطة عندها برنامجك في قاعدة البيانات.
وبهذا لن تجد مشكلة في الحفظ ولا في استعراضها حين الحاجة.
تمام ان عملت كدة والطريقة نجحت بس المشكلة انه بيظهر الرسالة دي
المفروض تظهر رسالة "تم الحفظ بنجاح"
RE: ازي احفظ قيم فارغة في قاعدة البيانات - ابراهيم ايبو - 15-02-22
السلام عليكم ورحمة الله وبركاته
اخي الكريم
بالنسبة لحفظ حقل فارغ
كنت قد اعطيتك حل انشاء حقل من نوع CheckBox في داتا غرايد لكنه لم يرق لك وبقيت على الليست بوكس
المهم نأتي على جملة الانسرت عبر الشرط ان كان فارغا نستثني الحقل من جملة الانسرت وان كان مليئا نضع الحقل في جملة الانسرت
على النحو التالي
كود :
if (DgvSearch.Rows[i].Cells[cbx6.SelectedIndex].Value == null)
{
Cmd3 = new SqlCommand("insert into Suppliers (Sup_ID,Sup_Name,Compny_Name,Sup_Adderss,Sup_Phone) Values (@Sup_ID,@Sup_Name,@Compny_Name,@Sup_Adderss,@Sup_Phone)", Con); //Notes بدون
}
else
{
Cmd3 = new SqlCommand("insert into Suppliers (Sup_ID,Sup_Name,Compny_Name,Sup_Adderss,Sup_Phone,Notes) Values (@Sup_ID,@Sup_Name,@Compny_Name,@Sup_Adderss,@Sup_Phone,@Notes)", Con);
}
بقي الباراميتر نكتب الباراميتر عادي وكأنه ليس فارغ هكذا
كود :
Cmd3.Parameters.Add(new SqlParameter("@Notes", SqlDbType.VarChar)).Value = DgvSearch.Rows[i].Cells[cbx6.SelectedIndex].Value; // هذا الباراميتر يكتب عادي مع بقية الباراميترات وينفذ في الحالة الثانية
يتم التأكد ان كان فارغ يستخدم جملة الانسرت الاولى ولايقرب الباراميتر
وأن كان مليئ يستخدم جملة الانسرت الثانية والباراميتر جاهز
RE: ازي احفظ قيم فارغة في قاعدة البيانات - رضوان الجماعي - 04-10-22
انت رائع استاذ ابراهيم
|