繁体   English   中英

C#程序中SQL Server的OleDB连接字符串

[英]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提供的所有其他类,如OleDbCommandOleDbDataReader等...)

  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但它不同), OleDbConnectionOleDbDataAdapter等等。 简而言之,出现这种错误的原因应该是:

string connStr = "Provider=SQLOLEDB;Data Source=<servername>;Initial Catalog=<dbname>;Integrated Security=SSPI";
using(SqlConnection scn = new SqlConnection(connStr))
  {
     ....
  }

实际上,使用SqlConnection对象时, ConnectionString属性不支持关键字Provider并且在执行应用程序时,您收到有关不支持的关键字的错误。

看看这个关于使用OLE DB提供程序的简单教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM