C# 使用OleDB需要什么?
我对使用OleDB的要求感到困惑C# 使用OleDB需要什么?,c#,oledb,C#,Oledb,我对使用OleDB的要求感到困惑 在应用程序中,我使用OleDB读取XLS文件。之后,我用ClickOnce(Visual Stuido 2012,.NET 4.0)发布了我的项目。但是,该应用程序能否在只安装了.NET 4.0的Windows系统上运行?或者其他人是否因为OleDB的内部使用而必须安装MS Office?OleDB是用于访问数据源的API 要使用它,您需要一个OLE DB提供程序 OLE DB提供程序只是一个COM对象 您的计算机上可能已经注册了许多OLE DB提供程序CO
在应用程序中,我使用OleDB读取XLS文件。之后,我用ClickOnce(Visual Stuido 2012,.NET 4.0)发布了我的项目。但是,该应用程序能否在只安装了.NET 4.0的Windows系统上运行?或者其他人是否因为OleDB的内部使用而必须安装MS Office?OleDB是用于访问数据源的API
- 要使用它,您需要一个OLE DB提供程序
- 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} |
OLEDBAPI是相当痛苦的
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();
阿多让事情变得容易了
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提供程序
所有这些都使用OLEDB
这些都是使用OLEDB的代码示例(从内存动态编写)
重要的是,您必须知道您想要哪个oledb提供商
- SQL Server:
(随Windows提供)SQLOLEDB
- SQL Server(本机客户端):
(原始版本,已弃用)SQLNCLI
- SQL Server(本机客户端):
(版本10,已弃用)SQLNCLI10
- SQL Server(本机客户端):
(版本11,已弃用)SQLNCLI11
- SQL Server:
(随SQL Server提供)MSOLEDBSQL
- Windows搜索:
Search.CollatorDSO
- Jet:
Microsoft.Jet.OLEDB
- 提供商
- 你必须使用它
DbConnection conn = new OleDbConnection();
conn.ConnectionString = connectionString;
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT 'Hello, world!'";
IDataReader rdr = cmd.ExecuteReader();