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

时间:2014-07-21 08:23:17

标签: c# sql .net sql-server

我已经看到很多通过OleDB连接到MS Access的答案,但SQL Server没有很好的答案。我尝试通过我的C#程序中的OleDB提供程序连接到SQL Server数据库。

这是我提供的连接字符串。

Provider=SQLOLEDB;Data Source=<servername>;Initial Catalog=<dbname>;Integrated Security=SSPI

但它给了我错误

  

'关键字不支持'提供商''

我想在这里做的是通过C#程序中的OleDB连接数据库。

4 个答案:

答案 0 :(得分:7)

这在我身边的预期效果。从错误消息中我强烈怀疑您使用的是SqlConnection类而不是OleDbConnection(当然您需要使用OleDb提供的所有其他类,如OleDbCommand,{{1等等......)

OleDbDataReader

答案 1 :(得分:2)

如有疑问,请在visual studio中使用字符串生成器。这样不受支持的关键字就无法进入您的连接字符串,以下是如何使用它的一个很好的例子。

http://www.c-sharpcorner.com/uploadfile/suthish_nair/how-to-generate-or-find-connection-string-from-visual-studio/

答案 2 :(得分:1)

相同的连接字符串在我的结尾处工作正常。 我发布了我的示例代码,该代码在我的最后成功执行

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,你可以看到输出。

答案 3 :(得分:0)

考虑到OLE DB提供程序,您正在使用的connection string是正确的。如果要连接到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提供程序的this simple tutorial