Tag: sqlbulkcopy

如何使用SqlBulkCopy保持行顺序?

我正在使用SqlBulkCopy将数据以编程方式从Excel导出到SQL Server 2005。 它工作得很好,我唯一的问题是,它不保留我在Excel文件中的行序列。 我没有要sorting的列,我只是希望插入logging的顺序与它们出现在Excel电子表格中的顺序相同。 我不能修改Excel文件,而必须使用我所得到的。 通过任何现有的列进行sorting会破坏序列。 请帮忙。 PS完成将ID列插入到电子表格中,看起来像在导出/导入过程中无法保持订单

Excel SqlBulkCopy在本地PC和应用程序服务器上的工作方式不同。

我的应用程序截断一个数据库表,并用Excel中的行填充它。 使用一个excel文件(2000行),下面的上传代码完全插入到我的本地pc(我的开发环境)中的所有行到数据库,它也在服务器上,所以我认为我成功地完成了任务, 但是,然后用户添加了10个新行到我的Excel,并试图上传2010行,但除了新增加的10行2000行被插入,所以使用该Excel文件与2010行,如果我从服务器数据库表上载2000行,如果我上传它使用我的工作环境决赛桌是2010行。 服务器和本地应用程序是完全一样的。 我也尝试格式化等 编辑示例执行:文件MyRecords.xlsx位于我的桌面,现在我连接到我的应用程序使用 http://myserver/myapplication 并上传MyRecords.xlsx,然后检查数据库中的计数,它说2361logging,然后打开Visual Studio并运行我的应用程序( http://localhost:58029/ )并上传MyRecords.xlsx并再次检查数据库它说2362logging。 编辑示例执行2:我的excel有2160行,如果我上传,它会从本地和服务器中插入2160行。 如果我删除了1000行并上传,现在它按预期从本地和从服务器插入1160行。 现在,如果我重新添加这1000行并上传Excel,现在如果我使用本地环境进行此过程,它可以很好地插入2160行,如果服务器,插入1160行。 所以在excel上的任何修改都不在服务器端看到,所以你确定这是原因吗? – private void UploadData(string path, string dbTableName) { //Create connection string to Excel work book string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;Persist Security Info=False"; //Create Connection to Excel work book OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); //Create […]

SQL批量复制“使用ASP.NET的数据源中的Stringtypes的给定值无法转换为指定的目标列的typesdatetime”

我正在处理ASP.NET MVC4 projet,我试图通过使用SQL批量复制将数据从xlsx文件(Excel 2010文件)导出到我的数据库。 我的Excel文件只包含2列:第一个包含数字(从1到25),第二个包含字符(“a,b,c”的连续序列) 这是我如何导出数据,但我得到了错误“从数据源的typesstring的给定值不能转换为指定的目标列的types的int” : public ActionResult Bulk() { string xConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\maarab\Documents\BulkCopy.xlsx;Extended Properties=Excel 12.0;"; using (OleDbConnection connection = new OleDbConnection(xConnStr)) { OleDbCommand command = new OleDbCommand("Select * FROM [Sheet1$]", connection); connection.Open(); string dbConnection = ((EntityConnection)db.Connection).StoreConnection.ConnectionString; // Create DbDataReader to Data Worksheet using (DbDataReader dr = command.ExecuteReader()) { using (var bulkCopy = […]