我有以下代码连接到我的数据库并从表中检索一些数据:
string connectionString = "Data Provider=SQLOLEDB;Data Source=myserver;Initial Catalog=Db;Integrated Security=FALSE;user=zh;pwd=zh12;";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "SELECT [Location], [URL], [TAGS] FROM [Db].[dbo].[BOOKINGTABLE]";
command.CommandType = CommandType.Text;
using (OleDbDataReader reader = command.ExecuteReader())
{
menu_ul_1.DataSource = reader;
menu_ul_1.DataBind();
}
}
我收到以下错误:
Exception Details: System.ArgumentException: An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;'.
当我将连接字符串行更改为:
时string connectionString = "Provider=SQLOLEDB;Data Source=myserver;Initial Catalog=Db;Integrated Security=FALSE;user=zh;pwd=zh12;";
我收到以下错误:
Exception Details: System.Data.OleDb.OleDbException: No error message available, result code: DB_E_ERRORSOCCURRED(0x80040E21).
Source Error:
Line 23: using (OleDbConnection connection = new OleDbConnection(connectionString))
Line 24: {
Line 25: connection.Open();
Line 26:
Line 27: OleDbCommand command = new OleDbCommand();
我该如何解决这个问题?
我的Web.config文件包含以下行:
<add key="ConnStringTEST" value="Data Source=myserver;Initial Catalog=Db;Integrated Security=FALSE;user=zh;pwd=zh12;" />
如何,如果,我可以在我的C#代码中使用上述行?
答案 0 :(得分:2)
经过多次故障排除后,我能够弄清楚它为什么不起作用。我重写了这样的字符串:
string cString = "Provider=sqloledb;Data Source=myserver;Initial Catalog=mydatabase;User Id=myid;Password=mypassword;";
这就像一个魅力,以防其他人遇到同样的问题。
答案 1 :(得分:1)
不要使用&#34; Integrated Security&#34;当您提供用户ID和密码时。
答案 2 :(得分:0)
在评论中使用Borat提到的video我能够引用连接字符串中的差异来调整我的。该视频演示了Windows身份验证,因此,如果这不是您想要的,请务必添加您自己的用户ID和密码。
我的问题是我的提供程序属性引用了:“Provider = IBMDASQL.DataSource.1”当连接到DB / 2时,但是当视频中显示的连接字符串引用时,“IBMDA400.DataSource.1”
有趣的是,在观看视频之后,我已经知道了这一点,并且已经使用过这种方法,但已经忘记了。我们多快忘记了事情。