Tag: sqlbulkcopy

无法findtypes或名称空间名称“SqlBulkCopy”

有人可以帮我解决这个错误。 这是我的代码: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.OleDb; using System.Data; using Microsoft.ApplicationBlocks.Data; using System.Configuration; OleDbConnection ExcelCon = new OleDbConnection(); ExcelCon.ConnectionString = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=C:\\Users\\pc\\Documents\\ExcellTest.xlsx;Extended Properties=\"Excel 12.0;HDR=Yes\""; SqlConnection SqlCon = new SqlConnection(); SqlCon.ConnectionString = @"workstation id = PC-PC; user id=sa;Password=sapassword; data source=pc-pc; persist security info=True; initial catalog=CleanPayrollTest2"; string sSQLTable […]

SQL批量插入不正确地插入值到表中

我有一个Excel文件(.xlsx),我试图将文件的内容上传到Sql服务器表中。 Iam使用SQL批量复制批量插入数据。 数据被插入到表中,但是我发现数据没有正确插入。 这里是示例Excel数据 – 这是Sql批量复制的代码: string fname = Path.GetFileName(fup_addRoute.FileName); fup_addRoute.SaveAs(Server.MapPath("/Admin/UserRoutes/" + fname)); string path = Server.MapPath("/Admin/UserRoutes/" + fname); using (OleDbConnection connection = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path))) { OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection); connection.Open(); System.Data.Common.DbDataReader dr = command.ExecuteReader(); SqlBulkCopy bulkInsert = new SqlBulkCopy(con); bulkInsert.DestinationTableName = "routesdata"; bulkInsert.WriteToServer(dr); connection.Close(); dr.Close(); […]

从Excel通过ACE.OLEDB sqlbulkcopy截断文本为255个字符

使用SqlBulkCopy非常简单直接的导入: string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;\""; using (OleDbConnection excelConnection = new OleDbConnection(excelConnectionString)) { excelConnection.Open(); OleDbCommand cmd = new OleDbCommand("Select " + fileID.ToString() + " as [FileID], * from [Sheet1$] where [Text] IS NOT NULL", excelConnection); OleDbDataReader dReader = cmd.ExecuteReader(); using (SqlBulkCopy sqlBulk = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString)) { sqlBulk.DestinationTableName = […]

date时间DataBase的列不能使用SQLBULKCOPY从Excel工作表中接受值

我有一个excel sheet ,它被复制到DataBase 。 excelsheet有一列作为DateOfBirth ,类似于DataBase中的表也是DateOfBirth ,它是DateTime 。 但现在当我用SqlBulkCopy复制它是抛出一个exception The given value of type String from the data source cannot be converted to type datetime of the specified target column. 我已经通过Excel工作表尝试了各种date格式,但是错误是一样的。

SqlBulkCopy与列映射之外的C#边界exception

我遇到一个问题,而使用SqlBulkCopy将一些数据从Excel复制到SQL Server表。 基本上,我需要将Excel文件的一些行的所有内容复制到表中。 我有这个工作使用直SqlBulkCopy没有列映射,但只有修改后的Excel文件(删除当前未使用/空列)。 由于我们的工作stream程,我们需要Excel文件保持不变,所以我尝试使用列映射。 (我宁愿避免使用临时表来工作,因为我的SQL技能不是那么好) 我的代码下面的作品完美,除了它不复制最后的11列。 如果我增加最后的数字(213)到224来尝试包含这些,我得到一个IndexOutOfRangeException错误。 数据读取器说有一个字段数为212(这是多less非空白列,但实际总的列数是224.如果我尝试没有列映射,数据closures(右)由12列组成。 using (DbConnection excelConnection = factory.CreateConnection()) { SqlConnection sqlConn = new SqlConnection(sqlConnectionString); excelConnection.ConnectionString = connString; using (DbCommand command = excelConnection.CreateCommand()) { command.CommandText = "SELECT * FROM [Master List$A18:HD" + (17 + cusipcount) + "]"; sqlConn.Open(); excelConnection.Open(); using (DbDataReader dr = command.ExecuteReader()) { using (SqlBulkCopy bulkcopy = new […]

sqlbulkcopy – 将string转换为DateTime时

我正在使用此代码插入一个CSV文件到我的数据库: private void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData) { using (SqlConnection dbConnection = new SqlConnection(ConnectionString)) { dbConnection.Open(); using (SqlBulkCopy s = new SqlBulkCopy(dbConnection)) { s.DestinationTableName = "tablename"; foreach (var column in csvFileData.Columns) s.ColumnMappings.Add(column.ToString(), column.ToString()); s.WriteToServer(csvFileData); } } } private static DataTable GetDataTabletFromCSVFile(string csv_file_path) { DataTable csvData = new DataTable(); try { using (TextFieldParser csvReader = new TextFieldParser(csv_file_path)) { […]

使用SqlBulkCopy在asp.net中上传Excel文件

我在asp.net c#中使用下面的代码上传Excel文件。它工作正常,但问题是,在Excel文件中,某些列值始终是数字,如果这些数值中的一些是文本格式,那么它是上传空值。 这是我的代码 – 请任何build议。 if (!Convert.IsDBNull(FileUpload.PostedFile) & FileUpload.PostedFile.ContentLength > 0) { //FIRST, SAVE THE SELECTED FILE IN THE ROOT DIRECTORY. FileUpload.SaveAs(Server.MapPath(".") + "\\" + FileUpload.FileName); // File.Delete(Server.MapPath(FileUpload.FileName)); SqlBulkCopy oSqlBulk = null; // SET A CONNECTION WITH THE EXCEL FILE. OleDbConnection myExcelConn = new OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=" + Server.MapPath(".") + "\\" + […]

“不是合法的OleAutdate”BulkCopy / Excel 2013 – SQL Server

我正在开发一个将Excel导出到SQL Server的应用程序。 我正在使用SqlBulkCopy ,但我面临着这个错误 不是合法的OleAutdate 只是在一些电脑上。 我已经在寻找一个解决scheme,但是很难。 我认为这个问题是因为来自excel的date信息。 我试图在文本上添加一行Excel,并将所有信息上传为文本,但date上载为“#######”。 请有人可以帮我解决这个问题吗? Public Shared Sub ImportDataFromExcel_DAL(ByVal excelFilePath As String) 'Select From Excel Dim ExcelDataQuery As String ExcelDataQuery = "SELECT [CustomerPO] ,[Line] ,[Sign Date] FROM [Sheet1$] WHERE [CustomerPO] IS NOT NULL" 'Excel Connection Dim sExcelConnectionString As String = (Convert.ToString("provider=Microsoft.ACE.OLEDB.15.0;data source=") & excelFilePath) + ";extended properties=" + """excel 12.0 […]

使用SQL批量复制来填充数据库表

我正在使用ASP.NET MVC4开发一个Web应用程序。 我有一个Excel文件有几列(其中一些是无用的),我想通过上传文件导出数据到相关的表。 我的上级之一告诉我使用SQL批量复制来做到这一点。 我search一些关于这方面的信息,但没有什么真正有趣的(例如,没有关于如何映射excel列和表字段)。 任何想法/教程做到这一点?

将用户友好的Excel工作表导入到具有许多外键的SQL Server表中

我有一张由HR员工填写的Excel工作表,上面有成千上万的客户logging: 用户友好的Excel工作表示例截图 我的客户的SQL Server表模式看起来像这样 CREATE TABLE [dbo].[Clients] ( [ID] INT IDENTITY (1, 1) NOT NULL, [Name] NVARCHAR (100) NOT NULL, [Photo] VARCHAR (200) NOT NULL, [PolicyID] INT NOT NULL, [BirthDay] DATE NOT NULL, [Gender] BIT NOT NULL, [Title] NVARCHAR (100) NULL, [Nationality] NVARCHAR (100) NOT NULL, [Relationship] NVARCHAR (50) NOT NULL, [ClassID] INT NOT NULL, […]