我想从已经存储在数据库中的Excel文件中导入数据。 我正在使用Visual Studio 2013,但在这里我试图寻找可以帮助我的SSISfunction,但我没有findSSISfunction,我发现很多教程,所以有任何其他方式,我怎么可以从Excel导入数据表到SQL服务器,然后每5分钟或一定的时间安排相同的任务? 如果任何人可以build议我这个任务的sql命令将是有益的。任何帮助将不胜感激。
我有现有的代码,基于文件(DBF,Excel)的列创build一个新的表格: OleDbConnection oConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + tbXLSBrowse.Text + "';Extended Properties=\"Excel 12.0 xml;HDR=Yes;IMEX=1\""); OleDbCommand command = new OleDbCommand("Select * FROM [Sheet1$]", oConn); //change to the sheet name oConn.Open(); DataTable dt = new DataTable(); dt.Load(command.ExecuteReader()); oConn.Close(); DataTableReader reader = dt.CreateDataReader(); myConnection = new SqlConnection(cString); myConnection.Open(); // checking whether the table selected from the dataset exists […]
连接 Conn_String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\UTS.mdb" conn = New OleDbConnection(Conn_String) conn.Open() 询问 sqlCmd.Connection = conn sqlCmd.CommandText = "INSERT into Customer_Master Values (@Cust_ID,@Cust_Name,@Cust_Address,@Cust_ContactNo)" sqlCmd.Parameters.AddWithValue("@Cust_ID", SqlDbType.Int).Value = Cust_id sqlCmd.Parameters.AddWithValue("@Cust_Name", SqlDbType.Text).Value = txtcname.Text sqlCmd.Parameters.AddWithValue("@Cust_Address", SqlDbType.Text).Value = txtcadd.Text sqlCmd.Parameters.AddWithValue("@Cust_ContactNo", SqlDbType.Int).Value = txtccontact.Text.ToString sqlCmd.ExecuteNonQuery() conn.Close() 问题 当我点击包含上面的代码的button,它给了我下面的错误.. UTS.exe中发生未处理的System.NullReferenceExceptionexception 附加信息:对象引用未设置为对象的实例。 错误是在这一行 – > sqlCmd.Connection = conn
我正在寻找如何在ASP.NET MVC应用程序中从SQL Server生成XLS(XLSX)文件。 现在我使用EPPlus执行SQL查询,并将结果保存到xlsx库中。 在这种情况下,我有性能问题。 如果我有这么多的数据,世代时间更长(平均150秒左右,大约10秒,时间也长)。 第一个想法是执行查询,返回XML,然后通过xslt模板转换为xls,但在这里,我通过Excel打开问题(格式和扩展名不匹配)。 第二个想法是执行查询,从数据库返回XSL(或XSLX),但我不知道如何做,因为文件保存在服务器上,我不知道如何发送到客户端下载。 第三个想法你有没有人遇到类似的问题,你能帮我吗? 感谢您的任何想法。 //编辑这里是我的代码的简短的例子: int row = 0; foreach(var obj1 in objList1) { WriteObj1(ref row, obj1); var objList2 = GetObj2(obj1.Id); foreach(var obj2 in objList2) { WriteObj2(ref row, obj2); var objList3 = GetObj3(obj2.Id); foreach(var obj3 in objList3) { WriteObj3(ref row, obj3); var objList4 = GetObj4(obj3.Id); foreach(var obj4 in objList4) […]
我有一个Excel 2013工作簿(XLSX),包含小数秒的date。 我试图导入到SQL Server 2012年,但它似乎总是失去了小数秒。 这是excel表单显示小数秒: 为了让它在Excel中显示,我使用自定义格式:yyyy-mm-dd hh:mm:ss.00 AM / PM。 当转换为一般时,它显示序列date41913.5945052431。 当我在SSIS(SQL Server数据工具2012)中创build一个Excel源时,我点击预览button时得到以下内容: 秒钟到最近的整秒,而不是小数秒。 如果我从Excel导出到CSV,我可以导入CSV罚款。 这是一个CSV的图像: 我如何获得SSIS中的Excel源支持小数秒?
我有一个担心,我认为这可能是一个很好的档案主题,因为我想很多人在他们的职业生涯中可能会遇到类似的问题。 我正在寻找关于将多个供应商之间的数据映射到标准格式的任何/所有build议,意见和评论。 我的故事: 目前,我收到两个不同类别的数据(又名“常量”和“variables”)。 包含大量的财务信息[即。 贷款,利率,抵押贷款,地址等]。 每个供应商都有自己的格式风格和不同于我自己的命名约定。 设置1)常量集:每天包含来自不同供应商的大约25个CSV文件。 每个供应商的数据都有不同的名称(列标题),但是他们的数据格式与我的相似。 设置2)variables集:包含大约20个文件,虽然他们的格式和头几乎总是唯一的(即我有一个名为“贷款利率”的数据集,我的供应商称之为“Rate”,“LnRt”,“rT “,”PxrT“等)。 因此,我需要通过每个文件,首先清理数据的格式(正确的大小写格式,parsing名称到不同的列,转换date/时间格式等)。然后重新标签的一切。 我目前的清理数据的方法是在Excel中使用“上传模板”。 清理完所有数据的格式之后,我将供应商文件中的值复制到我的模板中。 然后我将模板中的数据加载到temp中。 在SQL服务器上的表(Staging Table)。 随后运行一些SQL脚本,将这些值插入到数据库(DB)中的适当位置。 正如你可能想象的那样,整个过程非常耗费时间 – 手动继续这样做并不是真正的select。 在我的问题上: 1)你有没有做过这样的事情? 如果是的话,你是怎么做到的? 2)任何想法如何快速更改列名称(标题)基于另一个表内的名称列表? 3)对于如何改进stream程,您有什么build议吗? 4)你知道任何可以自动化这个过程的软件吗?
我试图插入Excel数据到数据库,MS SQL。 目前我打开了excellogging并插入。 花了太长时间。 有没有办法将Excellogging插入数据库一次? 感谢致敬, 这是我的代码: User user = new User(); cmd_obj = new OleDbCommand("SELECT * FROM [Sheet1$]", con_obj); OleDbDataReader dr = cmd_obj.ExecuteReader(); while (dr.Read()) { int blnBadSyntax = 0; int blnBadDomain = 0; int blnBadSMTP = 0; int blnGreylisted = 0; int blnBadMailbox = 0; bool blnIsValid = false; string key = "2CH3W-7ENLC-FWLZ4-WEUVY-JRQ11-AU69U-W63V5-ULF1C-DA5RC-RU7XS-XK6JY-6JT5U-MYLX"; […]
我已经四处寻找解决scheme,但他们都没有解决我的问题 SELECT TOP 10 [Appointment_Date] FROM dbo.RF_Performance_Referrals_Main WHERE (([Appointment_Date]) < '7/21/2014') ORDER BY [Appointment_Date] DESC 以上是我试图查询的简化版本。 我一直得到一个错误 [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]然后将varchar数据types转换为date时间数据types导致超出范围的值 我想也许我的连线有问题 所以我在Excel上试了一下,得到了完全相同的错误… 我检查了SQL Server表中特定字段设置为DATETIME 那么为什么会发生错误呢? 我在Cast / Convert上尝试了各种各样的东西,但没有一个看起来工作,我仍然得到相同的错误。 我真的不明白为什么。 如果解决这个问题请帮忙。 非常感谢
我的问题是以下几点:我试图用这个方法上传一个Excel文件到数据库: using (SqlConnection connection = new SqlConnection(@"Data Source=TESZT1\SQLEXPRESS;Initial Catalog=Alepitmeny;Persist Security Info=True;User ID=sa;Password=*****")) using (SqlCommand command = connection.CreateCommand()) { byte[] file; using (var stream = new FileStream(ExcelFilePath, FileMode.Open, FileAccess.Read)) { using (var reader = new BinaryReader(stream)) { file = reader.ReadBytes((int)stream.Length); } } command.CommandText = "INSERT INTO Dokumentacio (Elrendelo_ExcelFile) VALUES (@File) SELECT SCOPE_IDENTITY()"; command.Parameters.Add("@File", SqlDbType.VarBinary, file.Length).Value = […]
我想导入一个Excel文件到SQL Server,但我面临一个错误。 我的代码: create table test ( AccountNumber varchar(50), AccountName varchar(50), ParentAccountNumber varchar(50) ) select * into test FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]') 错误: 消息7302,级别16,状态1,行10 无法为链接服务器“(null)”创buildOLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的实例。 注意: Excel版本:2007 SQL Server版本:2012