اخواني اقوم بحفظ بعض البيانات الى SQL , على سبيل المثال احفظ الكود والاسم والعنوان , العنوان احيانا يكون به بيانات واحيانا يحفظ بقيمة فارغة (null) كيف لي ان احفظ البيانات مرة بها data او بيانات ومرة فارغة null
حفظ البيانات الفارغة (نتيجة استيراد البيانات من Excel إلى SQL Server بالتطبيق المرفق)
أخي الكريم من تجربتي الشخصية لا أنصحك باستخدام القيمة null وحفظها في قاعدة البيانات, إنما وقبل أن تحفظ البيانات أعط التعليمة التالية إا كنت تستخدم TextBox
if(isnullorempty(textbox1))
{
textbox1=" ";
}
أي عوض قيمة القيمة الفارغة بفراغ, وبهذا تكون قد حللت مشكلتين بدلاً من مشكلة ,فإن قيمة null لا تستطيع أن تتحكم فيها بشكل جيد أثناء الاستعلام
Anas T.P.M كتب:أخي الكريم من تجربتي الشخصية لا أنصحك باستخدام القيمة null وحفظها في قاعدة البيانات, إنما وقبل أن تحفظ البيانات أعط التعليمة التالية إا كنت تستخدم TextBox
if(isnullorempty(textbox1))
{
textbox1=" ";
}
أي عوض قيمة القيمة الفارغة بفراغ, وبهذا تكون قد حللت مشكلتين بدلاً من مشكلة ,فإن قيمة null لا تستطيع أن تتحكم فيها بشكل جيد أثناء الاستعلام
اخي الفكرة انني اقوم بجلب البيانات من ملف اكسل , كنت قد استعنت لمشروع من الانترنت يقوم بذلك ولكنه يجبرني على وضع الرقم صفر فى الخانات الفارغة حتى يملئ قاعدة البيانات بها , وانا لا اريد ان احفظ البيانات الفارغة بهذه الطريقة , اريد حفظها كما هي فارغها , مع العلم بان الجداول عندي مرتبطة فلا استطيع ان اضع سفر لمفتاح فى جدولي لا يوجد هذا الصفر فى الجدول الاصلي , عموما انا ارفقت لك المشروع وارجو بان يكون اوضح لديك
السلام عليكم ..
- التطبيق يقوم بتحويل الــ null إلى zero .. و كل ما عليك هو ان تعدله , فتحول الــ null إلى سلسلة نصية فارغة :
protected string valid(OleDbDataReader myreader, int stval)//if any columns are found null then they are replaced by zero { object val = myreader[stval]; if (val != DBNull.Value) return val.ToString(); else return Convert.ToString(0); }فتصبح :
else return "";
- مشكلة في تصدير البيانات : فيه مثال جيد لاستيراد البيانات , حاول اقتباس الفكرة منه ..
تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 15 أبريل 2012 في 21:16
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
houssam11350_11350 كتب:السلام عليكم ..
- التطبيق يقوم بتحويل الــ null إلى zero .. و كل ما عليك هو ان تعدله , فتحول الــ null إلى سلسلة نصية فارغة :
protected string valid(OleDbDataReader myreader, int stval)//if any columns are found null then they are replaced by zero { object val = myreader[stval]; if (val != DBNull.Value) return val.ToString(); else return Convert.ToString(0); }فتصبح :
else return "";- مشكلة في تصدير البيانات : فيه مثال جيد لاستيراد البيانات , حاول اقتباس الفكرة منه ..
اخي اعتقد بان هذه الطريقة لن تنفع لانه يوجد numeric ( رقم )
انا كنت قد توصلت الى انها ممكن ان تحل عن طريق if else
السلام عليكم ..
معك حق ... فالحقل zip رقمي ..اقتباساخي اعتقد بان هذه الطريقة لن تنفع لانه يوجد numeric ( رقم )- بالنسبة للحقول النصية نقوم بإدراج السلسلة الفارغة باستخدام String.Empty و بالنسبة للحقول الرقمية نقوم بإدراج null عن طريق القيمة DBNull.Value , او ممكن تجعله zero ..
- الكود كاملا :
using System; using System.Collections; using System.Configuration; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void insertdata_Click(object sender, EventArgs e) { OleDbConnection oconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("example.xls") + ";Extended Properties=Excel 8.0"); try { OleDbCommand ocmd = new OleDbCommand("select * from [Sheet1$]", oconn); oconn.Open(); OleDbDataReader odr = ocmd.ExecuteReader(); string fname = ""; string lname = ""; string mobnum = ""; string city = ""; string state = ""; string zip = ""; while (odr.Read()) { fname = valid(odr, 0); lname = valid(odr, 1); mobnum = valid(odr, 2); city = valid(odr, 3); state = valid(odr, 4); zip = valid(odr, 5); insertdataintosql(fname, lname, mobnum, city, state, zip); } oconn.Close(); } catch (DataException ee) { lblmsg.Text = ee.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Inserted Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Green; } } protected string valid(OleDbDataReader myreader, int stval)//if any columns are found null then they are replaced by zero { object val = myreader[stval]; if (val != DBNull.Value) return val.ToString(); else return String.Empty; } protected void viewdata_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes"); try { SqlDataAdapter sda = new SqlDataAdapter("select * from emp", conn); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind(); } catch (DataException de) { lblmsg.Text = de.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Shown Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Green; } } public void insertdataintosql(string fname, string lname, string mobnum, string city, string state, string zip) { SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes"); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "insert into emp(fname,lname,mobnum,city,state,zip) values(@fname,@lname,@mobnum,@city,@state,@zip)"; cmd.Parameters.Add("@fname", SqlDbType.NVarChar).Value = fname; cmd.Parameters.Add("@lname", SqlDbType.NVarChar).Value = lname; cmd.Parameters.Add("@mobnum", SqlDbType.NVarChar).Value = mobnum; cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = city; cmd.Parameters.Add("@state", SqlDbType.NVarChar).Value = state; if (string.IsNullOrEmpty(zip)) cmd.Parameters.Add("@zip", SqlDbType.Int).Value = DBNull.Value; else cmd.Parameters.Add("@zip", SqlDbType.Int).Value =Convert.ToInt32(zip); cmd.CommandType = CommandType.Text; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } protected void deletedata_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes"); try { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "delete from emp"; cmd.CommandType = CommandType.Text; conn.Open(); cmd.ExecuteScalar(); conn.Close(); } catch (DataException de1) { lblmsg.Text = de1.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Deleted Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Red; } } }
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
houssam11350_11350 كتب:السلام عليكم ..
- معك حق ... فالحقل zip رقمي ..
- بالنسبة للحقول النصية نقوم بإدراج السلسلة الفارغة باستخدام String.Empty و بالنسبة للحقول الرقمية نقوم بإدراج null عن طريق القيمة DBNull.Value , او ممكن تجعله zero ..
- الكود كاملا :
using System; using System.Collections; using System.Configuration; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void insertdata_Click(object sender, EventArgs e) { OleDbConnection oconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("example.xls") + ";Extended Properties=Excel 8.0"); try { OleDbCommand ocmd = new OleDbCommand("select * from [Sheet1$]", oconn); oconn.Open(); OleDbDataReader odr = ocmd.ExecuteReader(); string fname = ""; string lname = ""; string mobnum = ""; string city = ""; string state = ""; string zip = ""; while (odr.Read()) { fname = valid(odr, 0); lname = valid(odr, 1); mobnum = valid(odr, 2); city = valid(odr, 3); state = valid(odr, 4); zip = valid(odr, 5); insertdataintosql(fname, lname, mobnum, city, state, zip); } oconn.Close(); } catch (DataException ee) { lblmsg.Text = ee.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Inserted Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Green; } } protected string valid(OleDbDataReader myreader, int stval)//if any columns are found null then they are replaced by zero { object val = myreader[stval]; if (val != DBNull.Value) return val.ToString(); else return String.Empty; } protected void viewdata_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes"); try { SqlDataAdapter sda = new SqlDataAdapter("select * from emp", conn); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind(); } catch (DataException de) { lblmsg.Text = de.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Shown Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Green; } } public void insertdataintosql(string fname, string lname, string mobnum, string city, string state, string zip) { SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes"); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "insert into emp(fname,lname,mobnum,city,state,zip) values(@fname,@lname,@mobnum,@city,@state,@zip)"; cmd.Parameters.Add("@fname", SqlDbType.NVarChar).Value = fname; cmd.Parameters.Add("@lname", SqlDbType.NVarChar).Value = lname; cmd.Parameters.Add("@mobnum", SqlDbType.NVarChar).Value = mobnum; cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = city; cmd.Parameters.Add("@state", SqlDbType.NVarChar).Value = state; if (string.IsNullOrEmpty(zip)) cmd.Parameters.Add("@zip", SqlDbType.Int).Value = DBNull.Value; else cmd.Parameters.Add("@zip", SqlDbType.Int).Value =Convert.ToInt32(zip); cmd.CommandType = CommandType.Text; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } protected void deletedata_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;AttachDbFileName=|DataDirectory|exceltosql.mdf;Trusted_Connection=yes"); try { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "delete from emp"; cmd.CommandType = CommandType.Text; conn.Open(); cmd.ExecuteScalar(); conn.Close(); } catch (DataException de1) { lblmsg.Text = de1.Message; lblmsg.ForeColor = System.Drawing.Color.Red; } finally { lblmsg.Text = "Data Deleted Sucessfully"; lblmsg.ForeColor = System.Drawing.Color.Red; } } }
فعلا اخي هذا هو الحل بارك الله فيك