使用OleDB需要什么
本文关键字:什么 OleDB 使用 | 更新日期: 2023-09-27 18:01:37
我对使用OleDB的要求感到困惑。
在应用程序中,我使用OleDB读取XLS文件。之后,我用ClickOnce (Visual studio 2012, . net 4.0)发布了我的项目。但是这个应用程序能在只安装。net 4.0的Windows系统上运行吗?还是其他人因为内部使用OleDB而必须安装MS Office ?
OLEDB是一个访问数据源的API。
- 为了使用它,你需要一个OLE DB Provider。
- 一个OLE DB Provider是一个简单的COM对象。
您可能已经在您的机器上注册了许多OLE DB提供者COM类:
| Name | VersionIndependentProgID | ProgID | clsid |
|--------------------------------------------------------------|-------------------------------------|--------------------------|----------------------------------------|
| Microsoft OLE DB Provider for SQL Server | SQLOLEDB | SQLOLEDB.1 | {0C7FF16C-38E3-11d0-97AB-00C04FC2AD98} |
| Microsoft OLE DB Provider for Analysis Services 9.0 | MSOLAP | MSOLAP.3 | {176941F9-18E8-47D6-860D-006FF2655608} |
| Microsoft OLE DB Provider For Data Mining Services | MSDMine | MSDMine.1 | {2CB6C2D3-DD7C-11D2-AFE4-00105A994724} |
| MSDataShape | MSDataShape | MSDataShape.1 | {3449A1C8-C56C-11D0-AD72-00C04FC29863} |
| SQL Server Native Client 11.0 | SQLNCLI11 | SQLNCLI11.1 | {397C2819-8272-4532-AD3A-FB5E43BEAA39} |
| Microsoft.WINDOWS.SQLLITE.OLEDB.4.0 | | {3A5B4772-7946-4E58-9310-B0D423749C1D} |
| Microsoft Office 12.0 Access Database Engine OLE DB Provider | | Microsoft.ACE.OLEDB.12.0 | {3BE786A0-0366-4F5C-9434-25CF162E475E} |
| OLE DB Provider for Microsoft Directory Services | | ADsDSOObject | {549365d0-ec26-11cf-8310-00aa00b505db} |
| Microsoft OLE DB Provider for Search | Search.CollatorDSO | Search.CollatorDSO.1 | {9E175B8B-F52A-11D8-B9A5-505054503030} |
| Microsoft OLE DB Provider for OLAP Services 8.0 | MSOLAP | MSOLAP.2 | {A07CCD0C-8148-11D0-87BB-00C04FC33942} |
| Microsoft OLE DB Provider for ODBC Drivers | MSDASQL | MSDASQL.1 | {c8b522cb-5cf3-11ce-ade5-00aa0044773d} |
| Microsoft Jet 4.0 OLE DB Provider | Microsoft.Jet.OLEDB | Microsoft.Jet.OLEDB.4.0 | {dee35070-506b-11cf-b1aa-00aa00b8de95} |
| Microsoft OLE DB Simple Provider | MSDAOSP | MSDAOSP.1 | {dfc8bdc0-e378-11d0-9b30-0080c7e9fe95} |
| Microsoft OLE DB Provider for Oracle | MSDAORA | MSDAORA.1 | {e8cc4cbe-fdff-11d0-b865-00a0c9081c1d} |
OLE DB api是相当痛苦的
OLE DB的API界面过于复杂;有人继续说:
//Create an SQL Server OLEDB Provider
IDBInitialize db = CreateComObject("SQLOLEDB");
db.Initialize();
IDBCreateCommand createCommand = (dataSource as IDBCreateSession).CreateSession(IDBCreateCommand);
ICommandText commandText = createCommand.CreateCommand();
commandText.CommandText = "SELECT 'Hello, world!'";
IRowSet rs = commandText.Execute();
ADO使它更容易
OLE DB是一个非常复杂的API。ADO的出现让它变得简单多了。
Connection conn = new Connection();
conn.ConnectionString = connectionString;
conn.Open();
Recordset rs = new Recordset();
rs.ActiveConnection = conn;
rs.CommandText = "SELECT 'Hello, world!'";
rs.Open();
ADO.net可以使用OLEDB提供程序
DbConnection conn = new OleDbConnection();
conn.ConnectionString = connectionString;
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT 'Hello, world!'";
IDataReader rdr = cmd.ExecuteReader();
所有这些都使用OLEDB
这些都是使用 OLEDB的代码示例(从内存中动态编写)。
重要的是你必须知道你想要的是哪个oledb Provider。- SQL Server:
SQLOLEDB
(随Windows发货) - SQL Server(本地客户端):
SQLNCLI
(原始,已弃用) - SQL Server(本地客户端):
SQLNCLI10
(version 10,已弃用) - SQL Server(本地客户端):
SQLNCLI11
(版本11,已弃用) - SQL Server:
MSOLEDBSQL
(随SQL Server发货) - Windows搜索:
Search.CollatorDSO
- Jet:
Microsoft.Jet.OLEDB
一旦你知道了你想要的Provider,你就可以在连接字符串中找到它。
回答问题
使用OLEDB需要什么?
- 提供者
- 你必须使用它