- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个实用方法来从数据库表中获取架构。在本例中为 Oracle 11 数据库。
public static DataTable GetColumnsSchemaTable(DbConnection cnctn, string tableName)
{
DataTable schemaTable;
string[] restrictions = new string[3] { null, tableName, null };
schemaTable = cnctn.GetSchema("Columns", restrictions);
/* table name is case sensitive and in XXXX db table names are UPPER */
if (schemaTable.Rows.Count == 0)
{
restrictions = new string[3] { null, tableName.ToUpper(), null };
schemaTable = cnctn.GetSchema("Columns", restrictions);
}
return schemaTable;
}
当使用 System.Data.OracleClient 提供程序工厂创建 cnctn 时,这工作正常。使用 System.Data.OleDb 提供程序工厂创建时,该表没有行。我有另一种实用方法来获取连接字符串:
public static string GetDbConnectionString(DbConnection cnnctn, string provider, string server, string dbName, string user, string pwd)
{
if (cnnctn is OleDbConnection)
{
string usedProvider;
if (provider == null)
usedProvider = "msdaora";
else
usedProvider = provider;
return string.Format("Provider={0};Data Source={1};User Id={2};Password={3};",
usedProvider, dbName, user, pwd);
}
else if (cnnctn is System.Data.OracleClient.OracleConnection)
{
return string.Format("Data Source={0};User Id={1};Password={2};",
dbName, user, pwd);
}
else if (cnnctn is Oracle.DataAccess.Client.OracleConnection)
{
return string.Format("Data Source={0};User Id={1};Password={2};",
dbName, user, pwd);
}
else if (cnnctn is SqlConnection)
{
return string.Format("Data Source={0}; Initial Catalog={1}; User Id={2}; Password={3};",
server, dbName, user, pwd);
}
return string.Empty;
}
并且数据库连接有效(我在尝试获取架构之前删除了行)。我们将不胜感激。
谢谢和最好的问候 - Matti
最佳答案
好的。我整理好了。很久以前我制作这段代码只是为了现在已弃用的 OracleClient,并留下了使用其他连接/提供者工厂的可能性。我不记得限制因连接而异。所以正确的用法是:
string[] restrictions = new string[4] { null, null, tableName, null };
用于 OleDbConnection。
关于oracle - 为什么返回的 OleDbConnection.GetSchema ("Columns") 没有行,而相同的代码适用于 OracleConnection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066421/
当我尝试此代码时 OleDBConnection.open() 不起作用并且没有抛出任何错误,只需打开窗口窗体并说出任何我看到的 messageBox try1 但程序没有显示 try2 是什么我的连
我已经编写了用于将数据插入到 excel 表中的代码。我的代码不会引发任何异常,并且每次 excel 文件的大小都会增加 1KB。但是当我打开工作表时,它没有显示任何数据。 我很困惑,无法弄清楚问题所
所以,我有与C#/ASP.NET Oledb - MS Excel read "Unspecified error"中描述的相同的症状,但是我的my answer似乎没有修复它。即使总是关闭 OleD
Related Question 即使在我对初始化的 OleDbException 调用 dispose 之后,我的代码也不会释放文件句柄。有没有办法显式强制程序释放文件句柄? 最佳答案 默认情况下,
我正在使用 OleDatabase 连接连接到 Access 数据库。问题是我需要以编程方式在数据库上运行压缩和修复操作,但是当仍然有与数据库的打开连接时我不能这样做。存在的连接当然是来 self 程
C# 相当新,无论如何,我有我编写的这个 Initialise 方法,它基本上创建到 MS2007 Access 数据库的连接,用 4 个数据表填充数据集,这些数据表是一些查询的结果。 pub
我在这里使用 OleDbConnection 作为连接字符串,但我在行中收到错误 if (conn.State == ConnectionState.Closed) Error as CS0019:
C#、.Net 2.0:我有一个类包装来自通过 OleDbConnection 对象访问的数据库的单个记录。这很简单,它执行一个“SELECT * FROM table WHERE key = {so
我尝试使用以下连接字符串连接到远程 SQL Anywhere 10 数据库服务器,但收到“未找到数据库服务器”错误。 OleDbConnection conn = new OleDbConnectio
我在使用 OleDbConnection 从文本文件中读取非 ASCII 字符时遇到问题。有任何想法吗? 这是我用来重现问题的测试方法: [TestMethod] public void TestMe
我正在尝试连接到包含两个表的数据库。但是,在我尝试登录后,出现错误。该错误表明零点处没有行。我认为这是因为我的连接: using System; using System.Collections.Ge
我的制表符分隔文件是这样的: ISO ISO3 ISO-Numeric AD AND 20 我一直在尝试以下代码,但没有成功。 OleDbConnection cn = new OleDbC
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Is there any need to close a DbConnection if a using c
显然 ( MSDN ) 有时 OleDbConnection.ResetState() 什么都不做,所以即使连接失败 OleDbConnection.State 仍将设置为打开。我正在为此寻找最佳解决
我必须使用 OleDbConnection 来创建一个新的 excel 文件,但是当我用这个字符串打开连接时: OleDbConnection excelConnection =
我正在构建一个 ssis 包,我希望在脚本组件中使用现有的 OleDbConnection。这是我的代码: public override void AcquireConnections(object
我在 OleDbConnection Access 同一网络中 Windows 共享上的 .mdb 文件时遇到问题。当它在使用部分结束时被处理,需要超过 2 秒。打开连接并执行查询或填充 DataTa
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. 我知道这个的常见修复方法是安装: Mic
谁能帮我解决一个我似乎无法解决的问题。我在用于桌面的 VSE2012 express 和用于桌面的 VSE2013 express 中创建了一个 C# 表单,其中我将表单保留为默认大小并再次添加一个完
我有 MS Access 数据库,其中包含 Columns,其中 Names 具有丹麦语字符。例如Døbt 当程序在丹麦位置的 PC 上运行时,一切正常,但在乌克兰位置的 PC 上,我收到错误消息,指
我是一名优秀的程序员,十分优秀!