الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حفظ البيانات الفارغة (نتيجة استيراد البيانات من Excel إلى SQL Server بالتطبيق المرفق)

بدأه tatatab في 10 أبريل 2012 · 6 رد · 941 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني اقوم بحفظ بعض البيانات الى SQL , على سبيل المثال احفظ الكود والاسم والعنوان , العنوان احيانا يكون به بيانات واحيانا يحفظ بقيمة فارغة (null) كيف لي ان احفظ البيانات مرة بها data او بيانات ومرة فارغة null

#2

أخي الكريم من تجربتي الشخصية لا أنصحك باستخدام القيمة null وحفظها في قاعدة البيانات, إنما وقبل أن تحفظ البيانات أعط التعليمة التالية إا كنت تستخدم TextBox

if(isnullorempty(textbox1))

{

textbox1=" ";

}

أي عوض قيمة القيمة الفارغة بفراغ, وبهذا تكون قد حللت مشكلتين بدلاً من مشكلة ,فإن قيمة null لا تستطيع أن تتحكم فيها بشكل جيد أثناء الاستعلام

#3
Anas T.P.M كتب:

أخي الكريم من تجربتي الشخصية لا أنصحك باستخدام القيمة null وحفظها في قاعدة البيانات, إنما وقبل أن تحفظ البيانات أعط التعليمة التالية إا كنت تستخدم TextBox

if(isnullorempty(textbox1))

{

textbox1=" ";

}

أي عوض قيمة القيمة الفارغة بفراغ, وبهذا تكون قد حللت مشكلتين بدلاً من مشكلة ,فإن قيمة null لا تستطيع أن تتحكم فيها بشكل جيد أثناء الاستعلام

اخي الفكرة انني اقوم بجلب البيانات من ملف اكسل , كنت قد استعنت لمشروع من الانترنت يقوم بذلك ولكنه يجبرني على وضع الرقم صفر فى الخانات الفارغة حتى يملئ قاعدة البيانات بها , وانا لا اريد ان احفظ البيانات الفارغة بهذه الطريقة , اريد حفظها كما هي فارغها , مع العلم بان الجداول عندي مرتبطة فلا استطيع ان اضع سفر لمفتاح فى جدولي لا يوجد هذا الصفر فى الجدول الاصلي , عموما انا ارفقت لك المشروع وارجو بان يكون اوضح لديك

ImportExcel2SQLServer.zip

#4

السلام عليكم ..

  1. التطبيق يقوم بتحويل الــ 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 "";

  2. مشكلة في تصدير البيانات : فيه مثال جيد لاستيراد البيانات , حاول اقتباس الفكرة منه ..

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 15 أبريل 2012 في 21:16

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5
houssam11350_11350 كتب:

السلام عليكم ..

  1. التطبيق يقوم بتحويل الــ 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 "";

  2. مشكلة في تصدير البيانات : فيه مثال جيد لاستيراد البيانات , حاول اقتباس الفكرة منه ..

اخي اعتقد بان هذه الطريقة لن تنفع لانه يوجد numeric ( رقم )

انا كنت قد توصلت الى انها ممكن ان تحل عن طريق if else

#6

السلام عليكم ..

  1. اقتباس
    اخي اعتقد بان هذه الطريقة لن تنفع لانه يوجد numeric ( رقم )
    معك حق ... فالحقل zip رقمي ..
  2. بالنسبة للحقول النصية نقوم بإدراج السلسلة الفارغة باستخدام String.Empty و بالنسبة للحقول الرقمية نقوم بإدراج null عن طريق القيمة DBNull.Value , او ممكن تجعله zero ..
  3. الكود كاملا :
    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 : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7
houssam11350_11350 كتب:

السلام عليكم ..

  1. معك حق ... فالحقل zip رقمي ..
  2. بالنسبة للحقول النصية نقوم بإدراج السلسلة الفارغة باستخدام String.Empty و بالنسبة للحقول الرقمية نقوم بإدراج null عن طريق القيمة DBNull.Value , او ممكن تجعله zero ..
  3. الكود كاملا :
    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;
        	}
    	}
    
    }

فعلا اخي هذا هو الحل بارك الله فيك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…