[英]OleDB connection string for SQL Server in a C# program
我已经看到很多通过OleDB连接到MS Access的答案,但SQL Server没有很好的答案。 我尝试通过我的C#程序中的OleDB提供程序连接到SQL Server数据库。
这是我提供的连接字符串。
Provider=SQLOLEDB;Data Source=<servername>;Initial Catalog=<dbname>;Integrated Security=SSPI
但它给了我错误
'关键字不支持'提供商''
我想在这里做的是通过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中使用字符串生成器。 这样不受支持的关键字就无法进入您的连接字符串,以下是如何使用它的一个很好的例子。
相同的连接字符串在我的最后工作正常。 我发布了我的示例代码,该代码在我的最后成功执行
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
并且在执行应用程序时,您收到有关不支持的关键字的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.