C# 如何使用SqlBulkCopy插入1000条以上的记录

C# 如何使用SqlBulkCopy插入1000条以上的记录,c#,.net,sql-server,sql-server-2008,sqlbulkcopy,C#,.net,Sql Server,Sql Server 2008,Sqlbulkcopy,我需要在SQL Server中插入1000多条记录。但使用我的代码,我只能插入1000条记录。请帮帮我 下面是我在项目中用于将大量数据从excel插入SQL server的实时工作代码 C代码: public static DataSet Bindgrid_StoreInSQL(string path) { string strFileType = Path.GetExtension(path).ToLower(); string co

我需要在SQL Server中插入1000多条记录。但使用我的代码,我只能插入1000条记录。请帮帮我


下面是我在项目中用于将大量数据从excel插入SQL server的实时工作代码

C代码:

public static DataSet Bindgrid_StoreInSQL(string path)
    {


            string strFileType = Path.GetExtension(path).ToLower();
            string connString = "";
            if (strFileType.Trim() == ".xls")
            {
                connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
            }
            else if (strFileType.Trim() == ".xlsx")
            {
                connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
            }
            string query = "SELECT * FROM [Sheet1$]";
            OleDbConnection conn = new OleDbConnection(connString);
            OleDbCommand cmd = new OleDbCommand(query, conn);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            DataTable Exceldt = ds.Tables[0];

            //creating object of SqlBulkCopy    
            SqlBulkCopy objbulk = new SqlBulkCopy(OneStopMethods_Common.constring_Property);
            //assigning Destination table name    
            objbulk.DestinationTableName = "Tern_boq";


            objbulk.ColumnMappings.Add("ID", "ID");
            objbulk.ColumnMappings.Add("Bill_No", "Bill_No");
            objbulk.ColumnMappings.Add("Page_No", "Page_No");
            objbulk.ColumnMappings.Add("ItemNo", "ItemNo");
            objbulk.ColumnMappings.Add("Description", "Description");
            objbulk.ColumnMappings.Add("BOQ_Qty", "BOQ_Qty");
            objbulk.ColumnMappings.Add("UNIT", "UNIT");
            objbulk.ColumnMappings.Add("Category1", "Category1");
            objbulk.ColumnMappings.Add("Category2", "Category2");
            objbulk.ColumnMappings.Add("Category3", "Category3");
            objbulk.ColumnMappings.Add("Estimated_UnitRate", "Estimated_UnitRate");
            objbulk.ColumnMappings.Add("Estimated_Amount", "Estimated_Amount");



            //inserting Datatable Records to DataBase    
            conn.Open();
            objbulk.WriteToServer(Exceldt);


            SqlDatabase obj = new SqlDatabase(OneStopMethods_Common.constring_Property);
            string selquery = " select * from Tern_boq";
            return obj.ExecuteDataSet(CommandType.Text, selquery);




    }

它工作正常,希望这能给你一些想法,请让我知道你的想法或建议

当你插入1001条记录时会发生什么?它只插入前1000条记录,并在1000条记录之后丢弃所有记录。它是否达到了你的超时时间,或者引发了异常,一些错误消息?当然,你是,确保批量复制插入的行数不超过1000行。也就是说,您没有在management studio中使用右键单击select on表,该表只显示前1000行的select top 1000?我使用的是查询select*from TableName,只返回1000行。工作正常。我可以插入1000多行。感谢男士:我很高兴也很高兴能帮助您:…如果还需要什么,请告诉我..愉快共享..oneStopMethods\u Common.Constructing\u Property未被认可。我是否需要添加对某个对象的引用??您好,它只是一个连接字符串,您可以在更改之前简单地进行如下替换:SqlDatabase obj=new SqlDatabaseOneStopMethods\u Common.constring\u Property;更改后:SqlDatabase obj=new SqlDatabaseData Source=ServerName;初始目录=数据库名称;用户ID=用户名;密码=密码;注意:在上面的连接字符串中,适当地替换servername和DatabaseName。这也可能对你有所帮助:希望能有所帮助,分享你的反馈,谢谢
public static DataSet Bindgrid_StoreInSQL(string path)
    {


            string strFileType = Path.GetExtension(path).ToLower();
            string connString = "";
            if (strFileType.Trim() == ".xls")
            {
                connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
            }
            else if (strFileType.Trim() == ".xlsx")
            {
                connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
            }
            string query = "SELECT * FROM [Sheet1$]";
            OleDbConnection conn = new OleDbConnection(connString);
            OleDbCommand cmd = new OleDbCommand(query, conn);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            DataTable Exceldt = ds.Tables[0];

            //creating object of SqlBulkCopy    
            SqlBulkCopy objbulk = new SqlBulkCopy(OneStopMethods_Common.constring_Property);
            //assigning Destination table name    
            objbulk.DestinationTableName = "Tern_boq";


            objbulk.ColumnMappings.Add("ID", "ID");
            objbulk.ColumnMappings.Add("Bill_No", "Bill_No");
            objbulk.ColumnMappings.Add("Page_No", "Page_No");
            objbulk.ColumnMappings.Add("ItemNo", "ItemNo");
            objbulk.ColumnMappings.Add("Description", "Description");
            objbulk.ColumnMappings.Add("BOQ_Qty", "BOQ_Qty");
            objbulk.ColumnMappings.Add("UNIT", "UNIT");
            objbulk.ColumnMappings.Add("Category1", "Category1");
            objbulk.ColumnMappings.Add("Category2", "Category2");
            objbulk.ColumnMappings.Add("Category3", "Category3");
            objbulk.ColumnMappings.Add("Estimated_UnitRate", "Estimated_UnitRate");
            objbulk.ColumnMappings.Add("Estimated_Amount", "Estimated_Amount");



            //inserting Datatable Records to DataBase    
            conn.Open();
            objbulk.WriteToServer(Exceldt);


            SqlDatabase obj = new SqlDatabase(OneStopMethods_Common.constring_Property);
            string selquery = " select * from Tern_boq";
            return obj.ExecuteDataSet(CommandType.Text, selquery);




    }