标签: oledb

通过OLEDB连接到ACCDB格式的MS-ACCESS数据库

我最近提出了另一个关于在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

还有另一种方法吗?我的初衷(如原始问题中所述)正在收集一些(实际上,很多)字段.

.net c# vb.net oledb ms-access

10
推荐指数
1
解决办法
4万
查看次数

OleDbParameters和参数名称

我有一个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)

我的问题是,如果参数值只是按照添加命令的顺序插入到表中,参数名称的重点是什么?参数名称似乎多余?

.net c# oledb oledbparameter oledbcommand

10
推荐指数
2
解决办法
9967
查看次数

Microsoft ACE OLEDB提供程序抛出无法找到可安装的ISAM异常

我正在尝试使用64位进程读取Excel电子表格.因此,我使用64位版本的Micorosft Access数据库引擎2010.

以下代码

var cs = @"Provider=Microsoft.ACE.OLEDB.12.0;"
         + @"Data Source=C:\test.xls;"
         + @"Extended Properties=""Excel 14.0;""");

con = new OleDbConnection(cs);
con.Open();
Run Code Online (Sandbox Code Playgroud)

抛出异常:

找不到可安装的ISAM

使用谷歌我发现了很多关于这个例外的问题.但他们提到JET并且似乎不适用于我的问题.

有什么建议?

oledb excel ms-jet-ace

10
推荐指数
1
解决办法
2万
查看次数

R中的OLEDB连接

有没有人知道有任何方法可以直接在R中连接OLEDB数据源?

我试过google,CRAN和rseek没有任何运气.

oledb r

10
推荐指数
1
解决办法
3303
查看次数

烛台多个Y值

我的任务是使用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)

c# oledb mschart candlestick-chart

10
推荐指数
1
解决办法
2万
查看次数

无法添加Oracle OLEDB提供程序的性能计数器

在我的服务器上,我使用SqlClient连接到SQL Server,Oledb用于连接Oracle的旧应用程序和ODP.NET用于连接Oracle的新应用程序.

我在perf计数器中看到:

  1. 用于Oracle的.NET数据提供程序
  2. 适用于Sql Server的.NET数据提供程序
  3. ODP.NET管理

但我只能为Sql ServerODP.NET添加和查看.NET Data Provider的计数器.在.NET数据提供程序的Oracle(我的意思是System.Data.Oledb)不能正常工作.

资源:

OleDb提供程序不公开性能计数器.

那是对的吗?

sql-server oracle oledb odp.net performancecounter

10
推荐指数
1
解决办法
464
查看次数

检查OleDbConnection状态的最佳方法

显然(MSDN)有时候OleDbConnection.ResetState()什么都不做,所以即使连接失败,OleDbConnection.State仍然会被设置为Open.我正在寻找最好的解决方法,以便当我检查连接状态时,我可以避免引发异常(只要连接在上次检查和使用尝试之间没有失败).

没有什么比每次发送"无用的"sql语句只是为了查看是否抛出异常更好的了吗?在实际使用之前,如何确保连接已打开?

c# oledb connection database-connection oledbconnection

9
推荐指数
1
解决办法
4969
查看次数

如何在C#中使用oledb仅上传非空行的Excel电子表格?

我正在使用oledb连接将Excel工作表导入DataTable,如下所示.

private static DataTable UploadExcelSheet(string fileName)
    {
        DataTable uploadDataTable;
        using (OleDbConnection objXConn = new OleDbConnection())
        {
            objXConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
                                            ";Extended Properties=\"Excel 12.0;IMEX=1\"";

            objXConn.Open();

            OleDbCommand objCommand =
                new OleDbCommand("SELECT * FROM Template$ ", objXConn);
            OleDbDataAdapter objDataAdapter = new OleDbDataAdapter();

            // retrieve the Select command for the Spreadsheet
            objDataAdapter.SelectCommand = objCommand;

            // Create a DataSet
            DataSet objDataSet = new DataSet();

            // Populate the DataSet with the spreadsheet worksheet data
            objDataAdapter.Fill(objDataSet);
            uploadDataTable = objDataSet.Tables[0];
        }

        return uploadDataTable;
    }
Run Code Online (Sandbox Code Playgroud)

一切都运行正常,但是当用户在上传excel之前删除几行内容时会出现问题.它还会读取这些空行以及非空行,并且由于业务规则违规(缺少必填字段),因此在数据库中保存数据失败.我尝试的是在查询中放置条件: …

c# oledb excel

9
推荐指数
3
解决办法
2万
查看次数

SQL Server到MySQL的数据传输

我正在尝试将基于SQL Server数据库的常量和连续的批量数据传输到MYSQL数据库.我想使用SQL Server的SSMS复制,但这显然只适用于SQL Server到Oracle或IBM DB2连接.目前,我们正在使用SSIS转换数据并将其推送到MYSQL数据库的临时位置,在该位置复制数据.我想以最快的方式传输数据和复杂的几种方法.

我有一种新方法,我计划转换数据,我相信这将解决大多数时间问题,但我想确保我们将来不会遇到时间问题.我已经设置了一个链接服务器,它使用MYSQL ODBC驱动程序在SQL Server和MYSQL之间进行通信.这看起来非常慢.我有一些代码也使用Microsoft的ODBC驱动程序,但使用得太少,我无法衡量性能.有谁知道在这两个数据库之间快速通信的方式?我一直在研究MYSQL的数据提供程序,它们似乎与OleDB层进行通信.我不太确定该相信什么,以及哪种方式可以引导任何想法?

mysql sql-server oledb connection odbc

9
推荐指数
1
解决办法
5778
查看次数

OleDbConnection获取"外部组件抛出异常".

我正在使用Windows窗体应用程序将数据导出到Excel.

应用程序是x64和x86构建的.

因此,必须安装两个版本的Microsoft Access数据库引擎才能在同一台计算机上运行该应用程序.

首先安装AccessDatabaseEngine.exe,并且AccessDatabaseEngine_x64.exe被动安装.

x64版本的应用程序正在运行

但x86版本正在增加

SEHException: "External component has thrown an exception."

 at System.Data.Common.UnsafeNativeMethods.IDBInitializeInitialize.Invoke(IntPtr pThis)
 at System.Data.OleDb.DataSourceWrapper.InitializeAndCreateSession(OleDbConnectionString constr, SessionWrapper& sessionWrapper)
 at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
 at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
 at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
 at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
 at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
 at System.Data.OleDb.OleDbConnection.Open()
Run Code Online (Sandbox Code Playgroud)

代码部分如下;

var accessConnection = new OleDbConnection(connectionString);
accessConnection.Open();
Run Code Online (Sandbox Code Playgroud)

而ConnectionString是

Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\Users\Me\Desktop\ExportTest.xls";Extended Properties="Excel 8.0;HDR=Yes";
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

c# oledb oledbconnection

9
推荐指数
1
解决办法
6960
查看次数