c#程序中SQL Server的OleDB连接字符串
本文关键字:OleDB 连接 字符串 Server 程序 SQL | 更新日期: 2023-09-27 18:14:04
我看过很多通过OleDB连接到MS Access的答案,但是SQL Server没有好的答案。我尝试在我的c#程序中通过OleDB提供程序连接到SQL Server数据库。
这是我提供的连接字符串。
Provider=SQLOLEDB;Data Source=<servername>;Initial Catalog=<dbname>;Integrated Security=SSPI
但是显示错误
' Keyword not support ' Provider '
我要做的是在c#程序中通过OleDB连接数据库。
这在我这边工作。从错误信息中,我强烈怀疑您正在使用SqlConnection
类而不是OleDbConnection
(当然,您需要使用OleDb提供的所有其他类,如OleDbCommand
, OleDbDataReader
等…)
string connStr = "Provider=SQLOLEDB;Data Source=<servername>;Initial Catalog=<dbname>;Integrated Security=SSPI";
using(OleDbConnection cnn = new OleDbConnection(connStr))
{
....
}
如果有疑问,请使用visual studio中的字符串生成器。这样,不支持的关键字就不会出现在你的连接字符串中,下面是如何使用它的一个很好的例子。
http://www.c-sharpcorner.com/uploadfile/suthish_nair/how-to-generate-or-find-connection-string-from-visual-studio/相同的连接字符串在我的结束工作良好。我张贴我的示例代码,这是成功地执行在我的结束
public string connStr = "Provider=SQLOLEDB;Data Source=.;Initial Catalog=<dbName>;Integrated Security=SSPI";
public OleDbConnection con;
protected void Page_Load(object sender, EventArgs e)
{
Test();
}
public void Test()
{
con = new OleDbConnection(connStr);
con.Open();
OleDbCommand cmd = new OleDbCommand("select * from tblApartments", con);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
}
请设置断点并逐行检查,当您的断点到达con.close()时;然后检查ds,可以看到输出
考虑到OLE DB提供程序,您使用的连接字符串是正确的。我没有发现任何错误的连接字符串使用,如果你想连接到一个SQL Server数据源。
最有可能的是,该错误的原因应该是您没有正确使用OLE DB提供程序所需的所有类和对象,如OleDbCommand
(类似于SqlCommand
,但不同),OleDbConnection
, OleDbDataAdapter
等。简而言之,这个错误的原因应该是:
string connStr = "Provider=SQLOLEDB;Data Source=<servername>;Initial Catalog=<dbname>;Integrated Security=SSPI";
using(SqlConnection scn = new SqlConnection(connStr))
{
....
}
事实上,使用SqlConnection
对象,ConnectionString
属性不支持关键字Provider
,并且在执行应用程序时,您得到一个关于不支持关键字的错误。
看一下这个关于使用OLE DB提供程序的简单教程。