Tag: sql server

将Excel数据导入SQL Server,然后阻止从一列重复数据

我正试图将Excel数据导入到SQL Server中。 下面的代码适用于我。 但我的问题是,它重复从一个特定的列名称的数据行。 我们把它叫做列名'1',在我的存储过程中,我添加了一个参数('01'),它可以过滤掉重复的数据,即使它不是唯一的键列,但它是一个主键,完全可以被复制。 而我不知道如何执行我的存储过程的参数('01')在C#中插入select语句…所以我想要做的是,只是添加一个'如果语句'比较从表'tblname'的Excel …这是可能的吗? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using Excel; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace RASImportExcelToSql { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs […]

从Excel工作表上载百万条logging到数据库

我有一个用户上传excel文件的任务,其中有来自UI的百万条logging,我需要validation这些数据,如果一切正常,它将以单次上传(批量上传)的方式上传所有百万条logging到SQL DB。 我一直在分析如何做的方法。 我只有两种方法。 一个是通过UI,用户上传excel表格,并validation检查和sqlbulkcopy到数据库。 第二个用户从用户界面上传Excel,我将该文件保存在某个文件夹中,并为其创build一个SSIS包,然后运行作业调度程序从后端运行该作业。 我知道以后会在我们通过SSIS包裹破产的时候工作。 但是,只有在工作运行时,用户才能得到他们的输出。 但是我的需求需要即时输出给用户,只要他从UI上传应用程序。 为此我应该和前任一起去。 有了这个选项,我想知道UI无法处理从Excel表单插入百万条logging。 有人能告诉我该怎么向前迈进,或者什么是最好的实施方式。

使用visual basic将excel导出到sql

希望如果有人能帮助我为这个脚本 我正在试图创build一个macros附加到一个button,将数据导出到SQL的Excel文件。 我的SQL表如下 RecordedPeriod (datetime, not null) EventDate (varchar(8), not null) ID (int, not null) DeptCode (varchar(2), not null) OpCode (varchar(2), not null) StartTime (time(0), not null) FinishTime (time(0), not null) Units (int, not null) 在Visual Basic for Applications中创buildmacros时,我的代码如下所示 Sub Button1_Click() Dim conn As New ADODB.Connection Dim iRowNo As Integer Dim sRecordedPeriod, sEventDate, sID, sDeptCode, […]

SSIS – 加载多个Excel文件:第一个文件混乱,rest是正确的

所以我一直在试图解决这个问题。 我有一个具有相同数据结构的一堆Excel文件的文件夹。 我正尝试通过SSIS将它们导入SSMS。 现在,除了第一个以外,我能够完全获得每个文件。 问题是派生列。 我在Excel中有1个名为Title的列。 它包含一个人的标题和部门。 我使用派生列转换将其分割成一个称为“指定”和“部门”的列。 除了第一个文件外,每个文件都可以完美地工 第一个文件留下所有的指定空白,并填充到部门,但其他文件不这样做,完美的作品。 而且,在将数据推入数据库之前,我可以启用数据查看器,甚至在数据查看器中数据正确! 不知怎的,SSIS和SSMS之间的数据正在被破坏。 哦,最后,如果我没有For Each Loop运行数据stream任务,它工作正常。 我试着分析For Each Loop中的variables,但是我没有看到任何错误。 任何帮助,将不胜感激。

SSIS Excelvalidation失败错误

我正在加载到SQL Server数据库表的Excel。 我面临的Excel错误源代码validation失败。 错误:数据stream任务,SSIS.Pipeline 0xC004700C:一个或多个组件未通过validation。 错误:数据stream任务0xC0024107:任务validation期间出现错误。 警告:无限循环0x80019002:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。 执行方法成功,但引发的错误数量(4)达到允许的最大值(1); 导致失败。 当错误数量达到MaximumErrorCount中指定的数量时,会发生这种情况。 更改MaximumErrorCount或修复错误。 警告:0x80019002在包:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。 执行方法成功,但引发的错误数量(4)达到允许的最大值(1); 导致失败。 当错误数量达到MaximumErrorCount中指定的数量时,会发生这种情况。 更改MaximumErrorCount或修复错误。 SSIS包“G:\ Visual Studio 2015 \ Projects \ ReportAutomation \ ReportAutomation \ Package.dtsx”完成:失败。 该程序'[14472] DtsDebugHost.exe:DTS'已退出代码0(0x0)。 我试图使debugging部分RUN64bit运行时为FALSE,并延迟validation为TRUE。 我仍然面临这个问题。 请帮帮我。

在将dynamicexcel加载到ssms表时出现SSIS错误

我正试图加载到SSMS表格dynamic的Excel。 我面临以下问题。 我保持REASON字段长度为nvarchar(max)的数据types的最大值。 我试着用nvarchar(4000),仍然收到相同的错误。 [Excel来源[12]]错误:SSIS错误代码DTS_E_OLEDBERROR。 发生OLE DB错误。 错误代码:0x80040E21。 OLE DBlogging可用。 来源:“Microsoft Access数据库引擎”Hresult:0x80040E21描述:“多步OLE DB操作生成的错误。检查每个OLE DB状态值,如果可用,没有工作完成。 [Excel来源[12]]错误:无法检索“REASON”列的长数据。 [Excel Source [12]]错误:Excel Source.Outputs [Excel Source Output] .Columns [REASON] Excel Source.Outputs [Excel Source Output]中出现错误。 返回的列状态是:“DBSTATUS_UNAVAILABLE”。 [Excel来源[12]]错误:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “Excel Source.Outputs [Excel Source Output] .Columns [REASON]”失败,因为错误代码0xC0209071发生,并且“Excel Source.Outputs [Excel Source Output] .Columns [REASON]”上的错误行处置指定错误失败。 指定组件的指定对象发生错误。 在此之前可能会发布错误消息,提供有关失败的更多信息。 [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 Excel Source上的PrimeOutput方法返回了错误代码0xC0209029。 pipe道引擎调用PrimeOutput()时,组件返回失败代码。 失败代码的含义由组件定义,但错误是致命的,并且pipe道停止执行。 在此之前可能会发布错误消息,提供有关失败的更多信息。 我不能在这里分享数据,因为它是客户端数据。 请让我知道这将不胜感激。

使用Excel VBA运行SQL查询并获取错误

我是VBA新手。 我想从VBA代码运行简单的SQL查询。 我发现这个任务简单的代码,但我不断收到错误 “自动化错误未指定错误2147647259(80004005)” 我卡住了,请帮忙(用户名和密码被掩盖)。 这里是我的代码: Sub Download_Standard_BOM() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim ConnectionString As String Dim StrQuery As String ConnectionString = "Provider=SQLOLEDB.1;Password=13139797MMn;Persist Security Info=True;User ID=MPam;Data Source=172.20.84.15;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=ImportHapoalim" cnn.Open ConnectionString cnn.CommandTimeout = 900 StrQuery = "SELECT […]

单元格内容作为Excel中“WHERE”语句的一部分

我一直在寻找几个星期,但在寻找对以下问题的答案方面还没有取得太大的成功… 我可以在Excel中创build文本框(在开发人员选项中),然后将用户input的文本框内容作为SQL(T-SQL)中的WHERE语句的一部分吗? 理想情况下,我希望用户能够input一个3位数的ID号码,然后点击searchbutton,在相同或不同的工作表上显示结果列表。 如果一个文本框不是那么简单,那么我会解决一个单元格的内容,而不是文本框内容的引用。 像这样的东西: SELECT T.CustomerName, T.NetAmount, T.TransactionType FROM TheDatabase.dbo.TransactionsTable T WHERE T.ScheduledDate > '2016-01-01' AND (T.Status = 'InProcess' OR T.Status = 'Completed') AND T.CustomerID = [textbox1.contents / cell(A1).. something] 我知道SQL不是这样devise的,但我希望它能说明我正在努力完成什么。 一些背景: 我正在向同事传递一些责任,因为我正在转向不同的angular色。 我有一个定期运行的报告,提供了关于应付账款交易的统计信息。 我不得不在一夜之间学习一些基本的SQL,并且在deviseSELECT语句和学习中一直很成功。 问题是,当我需要添加一个新的客户(基本上是一个3位数字)到我的账户清单来审查,我不得不修改查询。 这对我来说没什么大不了的,我只是打开PowerQuery,select高级视图,然后编辑代码。 我不能为下一个人修复这个工具,所以我需要一种方法来search他们想要的客户。 我可以加载所有的客户,但是主表中有超过360万个事务,有超过30个字段。 PLUS在3个数据库中至less有6个表,我将它们连接在一起来计算所有的信息。 上一次我试图检索所有的交易数据,因为我的系统内存不足,使我停止生产。 我成功地查询了这么多的数据,花了近10分钟。 老实说,这对我来说不是问题,但是这个人必须一直运行这个,我需要加快速度。 正如我所看到的,消除这个问题的唯一方法就是仅仅拉取我需要的交易。 当我现在这样做,它需要3秒钟。 我一直在使用的查询是在Microsoft SQL Server Management Studio中创build的,我基本上复制查询并在Excel中创build查询时将其粘贴到“高级”框中。 任何有关这方面的build议都会对现在和将来的项目都有所帮助!

“不是合法的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 […]

SSIS – 导入Excel文件并停在第一个空行

我正在导入一个Excel表到我的SSIS包。 我知道的: 我知道Excel文件中的数据在哪一行开始 我知道我需要多less列 我知道在最后一个导入行之后会出现一个空行 所以行数不一。 我怎么能告诉SSIS导入数据,直到第一个空行。 我的想法是在C#编写脚本,并将空行的行ID存储在variables中。 有了这个variables,我可以指定我的Excel文件的导入matrix。 其实我没有任何C#经验。 任何人都可以帮助我吗? 还是有没有人有一个更好的主意? 先谢谢你!!