Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何在asp.net 4.0中使用sql批量直接添加列值_C# 4.0_Asp.net 3.5 - Fatal编程技术网

C# 4.0 如何在asp.net 4.0中使用sql批量直接添加列值

C# 4.0 如何在asp.net 4.0中使用sql批量直接添加列值,c#-4.0,asp.net-3.5,C# 4.0,Asp.net 3.5,我只想在将所有行详细信息从Excel导入Sql数据库时直接添加列值 这是我的代码: protected void lbut_import_Click(object sender, EventArgs e) { if (Page.IsValid) { if (FileUpload1.HasFile) { if (FileUp

我只想在将所有行详细信息从Excel导入Sql数据库时直接添加列值

这是我的代码:

    protected void lbut_import_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                if (FileUpload1.HasFile)
                {
                    if (FileUpload1.FileContent.Length > 0)
                    {
                        string Foldername;
                        string Extension = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
                        string filename = DateTime.Now.ToString("ddMMyyyy_HHmmss");
                        if (Extension == ".XLS" || Extension == ".XLSX" || Extension == ".xls" || Extension == ".xlsx")
                        {
                            Foldername = Server.MapPath("~/Files/");
                            FileUpload1.PostedFile.SaveAs(Foldername + filename + Extension);
                            String conStr = "";
                            switch (Extension)
                            {
                                case ".xls": //Excel 97-03
                                    conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                                    "Data Source=" + Foldername + "//" + filename + Extension + ";" +
                                    "Extended Properties=Excel 8.0;";
                                    break;

                                case ".xlsx": //Excel 07
                                    conStr = "Provider=Microsoft.ACE.OLEDB.12.0;" +
                                    "Data Source=" + Foldername + "//" + filename + Extension + ";" +
                                    "Extended Properties=Excel 8.0;";
                                    break;
                            }
                            OleDbConnection excelConnection = new OleDbConnection(conStr);
                            OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", excelConnection);
                            excelConnection.Open();
                            OleDbDataReader dReader;
                            dReader = cmd.ExecuteReader();
                            SqlBulkCopy sqlBulk = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["CRMConnectionString"].ToString());
                            //Give your Destination table name
                            using (DataClassesDataContext db = new DataClassesDataContext())
                            {
                                sqlBulk.DestinationTableName = "tbl_Party_master";
                                sqlBulk.ColumnMappings.Add("Name",int.Parse(dReader[txt_col.Text.Trim()].ToString()));
                                sqlBulk.ColumnMappings.Add("type_id", int.Parse(dReader[txt_col1.Text.Trim()].ToString()));
                                if (!string.IsNullOrEmpty(txt_col2.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Ownername", int.Parse(dReader[txt_col2.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col3.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Ownermob", int.Parse(dReader[txt_col3.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col4.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Room", int.Parse(dReader[txt_col4.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col5.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Road", int.Parse(dReader[txt_col5.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col6.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Area", int.Parse(dReader[txt_col6.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col7.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("City", int.Parse(dReader[txt_col7.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col8.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Mobile", int.Parse(dReader[txt_col8.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col9.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Email", int.Parse(dReader[txt_col9.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col10.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("ContactPerson", int.Parse(dReader[txt_col10.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col11.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("ContactPersonmob", int.Parse(dReader[txt_col11.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col12.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("UserOFC", int.Parse(dReader[txt_col12.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col13.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("UserVAT", int.Parse(dReader[txt_col13.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col14.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("UserINV", int.Parse(dReader[txt_col14.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col15.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("UserNone", int.Parse(dReader[txt_col15.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col16.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("state_id", int.Parse(dReader[txt_col16.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col17.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("country_id", int.Parse(dReader[txt_col17.Text.Trim()].ToString()));
                                }
                                if (!string.IsNullOrEmpty(txt_col18.Text.Trim()))
                                {
                                    sqlBulk.ColumnMappings.Add("Remark", int.Parse(dReader[txt_col18.Text.Trim()].ToString()));
                                }
                                sqlBulk.ColumnMappings.Add("Register_Date", "Register_Date");
                                sqlBulk.ColumnMappings.Add("User_id","User_id");
                                sqlBulk.WriteToServer(dReader);
                                excelConnection.Close();
                            }
                        }
                    }
                    ibtnimexls_ModalPopupExtender.Show();
                }
            }
        }
我发现了如下错误:

1

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IndexOutOfRangeException: 1

Source Error: 


Line 3015:                        {
Line 3016:                            sqlBulk.DestinationTableName = "tbl_Party_master";
Line 3017:                            sqlBulk.ColumnMappings.Add("Name",int.Parse(dReader[txt_col.Text.Trim()].ToString()));
Line 3018:                            sqlBulk.ColumnMappings.Add("type_id", int.Parse(dReader[txt_col1.Text.Trim()].ToString()));
Line 3019:                            if (!string.IsNullOrEmpty(txt_col2.Text.Trim()))

Source File: f:\CRM\Staff\Raise_Ticket.aspx.cs    Line: 3017 

Stack Trace: 


[IndexOutOfRangeException: 1]
   System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) +5002922
   System.Data.OleDb.OleDbDataReader.GetOrdinal(String name) +68
   System.Data.OleDb.OleDbDataReader.get_Item(String name) +15
   Staff_Raise_Ticket.lbut_import_Click(Object sender, EventArgs e) in f:\CRM\Staff\Raise_Ticket.aspx.cs:3017
   System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) +118
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +113
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1
我不知道我是怎么错的………..

这个类只将源列映射到目标列。不是源值到目标列。(请注意,您甚至试图将源列映射到目标值,这很难想象)

您必须确保
dReader
在其查询中硬编码了所需的值