我需要访问Excel电子表格并将电子表格中的数据插入SQL数据库.但是主键是混合的,大多数是数字的,有些是字母数字.
我遇到的问题是,当数字和字母数字键在同一个电子表格中时,字母数字单元格返回空白值,而所有其他单元格返回其数据没有问题.
我正在使用OleDb方法来访问Excel文件.使用Command字符串检索数据后,我将数据放入DataAdapter,然后填充DataSet.我遍历DataSet中第一个DataTable中的所有行(dr).
我使用dr ["..."]引用列.ToString()
如果我在Visual Studio 2008中调试项目并查看"扩展属性",将鼠标悬停在"dr"上我可以查看DataRow的值,但应该是字母数字的主键是{}.其他值用引号括起来,但空白值有大括号.
这是C#问题还是Excel问题?
有没有人曾经遇到过这个问题,或者可能找到了解决方法/修复方法?
提前致谢.
我正在尝试阅读一个名为的电子表格文件Book1.xls,其中包含一个名为的工作表Sheet1
但是我收到以下错误:
Microsoft Jet数据库引擎找不到对象'Sheet1 $'.确保对象存在,并正确拼写其名称和路径名称.
这是我正在使用的代码片段:
Dim dt As DataTable = New DataTable()
Select Case fileExt
Case ".csv"
Dim reader As New CsvReader
dt = reader.GetDataTable(filePath)
Case ".xls", ".xlsx"
Dim oleDbConnStr As String
Select Case fileExt
Case ".xls"
oleDbConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2"""
Case ".xlsx"
oleDbConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & filePath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2"""
End Select
Using oleDbConn As OleDbConnection = New OleDbConnection(oleDbConnStr)
oleDbConn.Open()
Dim oleDbCmd As New OleDbCommand("SELECT * FROM …Run Code Online (Sandbox Code Playgroud) 在一个ssis包中包含数据流任务,包含OLEDB源和OLDB Target ..provider是sql native client ..这个用来运行正常..但是现在出现了如下所示的错误..
请告诉我如何解决它?将其更改为ado.net?
操作系统:Windows 7专业版,db是sql server 2000
[Axe_Data [737]]错误:SSIS错误代码DTS_E_OLEDBERROR.发生OLE DB错误.错误代码:0x80004005.OLE DB记录可用.来源:"Microsoft SQL Server Native Client 10.0"Hresult:0x80004005描述:"通信链接失败".OLE DB记录可用.来源:"Microsoft SQL Server Native Client 10.0"Hresult:0x80004005说明:"TCP提供程序:信号量超时期限已过期.
我非常需要帮助解决SSIS的问题.我正在尝试使用SSIS从一个SQL群集导出/导入数据到另一个SQL群集.两者都是SQL 2008 Ent.64位.两者都在Win2k8 Ent上运行.64位.目的地是Win2k8 R2.
我遇到的问题是间歇性但非常频繁.SSIS连接在各个步骤中丢失.有时在第一个任务上失败,有时在最后一个任务上失败...有时它完全完成第一次迭代(在for-each循环中)并且在后续迭代时失败.
该软件包的相同版本在过去针对不同的目标运行而没有失败.以前的目标是在Win2k3 Standard和SQL 2005 Std上运行的单个服务器(非群集).64位.
新的目标服务器完全没有流量.有足够的CPU /内存等.包已经从源服务器或目标服务器执行,具有类似的结果.
错误0xc0209029:数据流任务1:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR."输入"目标输入"(62)"失败,因为发生错误代码0xC020907B,并且"输入"目标输入"(62)"上的错误行处置指定错误失败.指定组件的指定对象发生错误.在此之前可能会发布错误消息,其中包含有关失败的更多信息.(SQL Server导入和导出向导)
错误0xc0047022:数据流任务1:SSIS错误代码DTS_E_PROCESSINPUTFAILED.组件"Destination - AGGSLIVE_Bandwidth"(49)上的ProcessInput方法在处理输入"Destination Input"(62)时失败,错误代码为0xC0209029.标识的组件从ProcessInput方法返回错误.该错误特定于组件,但错误是致命的,将导致数据流任务停止运行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.(SQL Server导入和导出向导)
错误0xc0209017:数据流任务1:设置缓冲区的行集结束失败,错误代码为0xC0047020.(SQL Server导入和导出向导)
错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED.组件"Source - Query"(1)上的PrimeOutput方法返回错误代码0xC0209017.当管道引擎调用PrimeOutput()时,组件返回失败代码.失败代码的含义由组件定义,但错误是致命的,管道停止执行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.(SQL Server导入和导出向导)
此查询产生错误No value given for one or more required parameters:
using (var conn = new OleDbConnection("Provider=..."))
{
conn.Open();
var result = conn.Query(
"select code, name from mytable where id = ? order by name",
new { id = 1 });
}
Run Code Online (Sandbox Code Playgroud)
如果我将查询字符串更改为:... where id = @id ...,我将收到错误:Must declare the scalar variable "@id".
如何构造查询字符串以及如何传递参数?
我有一个简单的Excel电子表格文档(运行Office 2013),我使用"Microsoft Office 15.0 Access数据库引擎OLE DB提供程序"作为数据库.
我可以使用MS SQL Server Management Studio 2012连接到此,我甚至可以从命名范围"Employee"中选择数据.
SELECT *
FROM [X]...[Employee]
GO
Run Code Online (Sandbox Code Playgroud)
结果:
ID Name Description Salary
1 Rob Cool 1
2 Bob Awesome 2
3 Robert DUDE! 3
Run Code Online (Sandbox Code Playgroud)
现在我想在这里插入数据.所以我写道:
INSERT INTO [X]...[Employee]
([ID]
,[Name]
,[Description]
,[Salary])
VALUES
(4
,"John"
,"Boss"
,500)
Run Code Online (Sandbox Code Playgroud)
这实际上主要由SQL Server Management Studio生成.当我运行这个时,我得到:
Msg 207, Level 16, State 1, Line 8
Invalid column name 'John'.
Msg 207, Level 16, State 1, Line 9
Invalid column name 'Boss'.
Run Code Online (Sandbox Code Playgroud)
知道我做得不好吗?
我们的客户最近从TLS 1.0升级到TLS 1.2,之后我们的软件无法与SQL服务器连接.它使用OLE DB提供程序连接到SQL Server.以下是从SQL服务器返回的错误 -
[DBNETLIB] [ConnectionOpen SECDoClientHandshake()] SSL安全错误SQL状态:08001 SQL错误号码:18
找不到与Microsoft OLE DB Provider for SQL Server是否支持TLS 1.2相关的任何有用信息.
我发现的其中一个链接似乎表明它不受支持. https://forums.iis.net/t/1233674.aspx?connecing+SQL+server+DB+issue+after+installingTLS1+2+in+SQL+srver+with+classic+asp+application+
因此,想要检查stackoverflow,以防任何人有任何关于此的信息.
我最近提出了另一个关于在C#或VB.NET中使用.NET连接MS-ACCESS数据库的问题.它与MDB一样正常工作,但是使用accdb它会导致异常
conn.Open();
Run Code Online (Sandbox Code Playgroud)
其中包括:
alt text http://dl.dropbox.com/u/3045472/accdb_fail.png
还有另一种方法吗?我的初衷(如原始问题中所述)正在收集一些(实际上,很多)字段.
我有一个SQL语句,我正在通过OleDb执行,语句是这样的:
INSERT INTO mytable (name, dept) VALUES (@name, @dept);
Run Code Online (Sandbox Code Playgroud)
我正在向OleDbCommand添加参数,如下所示:
OleDbCommand Command = new OleDbCommand();
Command.Connection = Connection;
OleDbParameter Parameter1 = new OleDbParameter();
Parameter1.OleDbType = OleDbType.VarChar;
Parameter1.ParamterName = "@name";
Parameter1.Value = "Bob";
OleDbParameter Parameter2 = new OleDbParameter();
Parameter2.OleDbType = OleDbType.VarChar;
Parameter2.ParamterName = "@dept";
Parameter2.Value = "ADept";
Command.Parameters.Add(Parameter1);
Command.Parameters.Add(Parameter2);
Run Code Online (Sandbox Code Playgroud)
我得到的问题是,如果我添加参数以反过来命令,那么列将填充错误的值(即名称在dept列中,反之亦然)
Command.Parameters.Add(Parameter2);
Command.Parameters.Add(Parameter1);
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果参数值只是按照添加命令的顺序插入到表中,参数名称的重点是什么?参数名称似乎多余?
我的任务是使用Windows窗体中的MSChart制作烛台图.我已经成功制作了一个没有问题的3D条形图.但经过长时间的互联网搜索,微软的源代码(WinSamples)以及大量的头像,我无法找到创建烛台图的正确方法.
有什么可以帮助我的是一个明确的例子,即在图表中添加一个系列,其中包含多个Y值或我的代码的更正(当我运行时,调试没有显示为图例标签的exept).
奖励将是该示例基于OleDB(我的值在Access数据库中).
所以我的问题是:如果你有在Windows窗体中用C#创建烛台图表的经验,你可以给我一个提示或(甚至更好)你能给我一些c#代码吗?
这是我当前(不工作)的代码:
using System.Windows.Forms.DataVisualization.Charting;
public partial class CandleStick : Form
{
public CandleStick()
{
InitializeComponent();
}
private void CandleStick_Load(object sender, EventArgs e)
{
GrafiekLaden();
}
public void GrafiekLaden()
{
Koers k = new Koers();
// This method fills up a list, the data comes from my database
// it contains Date, High, Low, Open, Close
k.meerdereOphalen();
Series price = new Series();
chart1.Series.Add(price);
// Set series chart type
chart1.Series["price"].ChartType = SeriesChartType.Candlestick;
// Set the style of the open-close …Run Code Online (Sandbox Code Playgroud) 在我的服务器上,我使用SqlClient连接到SQL Server,Oledb用于连接Oracle的旧应用程序和ODP.NET用于连接Oracle的新应用程序.
我在perf计数器中看到:
但我只能为Sql Server和ODP.NET添加和查看.NET Data Provider的计数器.在.NET数据提供程序的Oracle(我的意思是System.Data.Oledb)不能正常工作.
资源:
OleDb提供程序不公开性能计数器.
那是对的吗?