连接到C#中的数据库:ArgumentException

连接到C#中的数据库:ArgumentException,c#,database-connectivity,C#,Database Connectivity,我正在Windows7x64机器上运行VisualStudioDeveloperPreview 2011 我刚开始学习C#,连接数据库有困难。我使用MS Access创建了一个数据库,并使用连接到数据库选项创建了一个连接 这是连接字符串 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\USER\Documents\BlankDB.mdb 我正在关注这一点 我将变量masterConnectionString添加到项目设置中,并用连接字

我正在Windows7x64机器上运行VisualStudioDeveloperPreview 2011

我刚开始学习C#,连接数据库有困难。我使用MS Access创建了一个数据库,并使用
连接到数据库
选项创建了一个连接

这是连接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\USER\Documents\BlankDB.mdb
我正在关注这一点

我将变量
masterConnectionString
添加到
项目设置中,并用连接字符串的值初始化它

程序可以编译,但在运行时我得到以下错误

System.Data.dll中发生了类型为“System.ArgumentException”的第一次意外异常

其他信息:不支持关键字:“提供程序”。在此之后,程序终止

如果从字符串中删除提供程序部分,将引发以下异常

其他信息:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。
找不到或无法访问服务器。
验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。
(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)

我已经尝试了一段时间,这真的令人沮丧。是否有其他更简单的方法连接到C#中的数据库?是否可以从Visual Studio中创建SQL Server数据库

下面是我用来连接数据库的代码

 static void TryCreateTable()
        {
            using (SqlConnection con = new SqlConnection(DogsDB.Properties.Settings.Default.BlankDBConnectionString))
            {
                con.Open();
                try
                {
                    using (SqlCommand command = new SqlCommand("CREATE TABLE Dogs1 (Weight INT, Name TEXT, Breed TEXT)", con))
                    {
                        command.ExecuteNonQuery();
                    }
                }
                catch
                {
                    Console.WriteLine("Table couldn't be created.");
                }
            }
        }

这是一个OleDB连接字符串,不是SQL Server连接字符串。
您需要将其与
OleDbConnection
一起使用

如果要使用SQL Server而不是Access,可以使用SQL Server Management Studio或VS的服务器资源管理器创建数据库。
然后可以使用SQL Server连接字符串连接到它


您可以看到示例连接字符串。

这是一个OleDB连接字符串,而不是SQL Server连接字符串。
您需要将其与
OleDbConnection
一起使用

如果要使用SQL Server而不是Access,可以使用SQL Server Management Studio或VS的服务器资源管理器创建数据库。
然后可以使用SQL Server连接字符串连接到它


您可以看到示例连接字符串。

您正在学习sql server教程。要连接到MS Access数据库,连接代码应如下所示:

OleDbConnection sqlConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\USER\\Documents\\BlankDB.mdb");
确保避开反斜杠

那你就可以了

try{
  sqlConn.Open();
  OleDbCommand command = new OleDbCommand("CREATE....", sqlConn);
  command.CommandType = CommandType.Text;
  command.ExecuteNonQuery();
}
catch(InvalidOperationException ioe)
{
    ....
}
catch(OleDbException ode)
{
    ....
}
sqlConn.Close();

您正在学习sql server教程。要连接到MS Access数据库,连接代码应如下所示:

OleDbConnection sqlConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\USER\\Documents\\BlankDB.mdb");
确保避开反斜杠

那你就可以了

try{
  sqlConn.Open();
  OleDbCommand command = new OleDbCommand("CREATE....", sqlConn);
  command.CommandType = CommandType.Text;
  command.ExecuteNonQuery();
}
catch(InvalidOperationException ioe)
{
    ....
}
catch(OleDbException ode)
{
    ....
}
sqlConn.Close();

出现此错误的原因有很多

1) 参考网站是使用SQL Server数据库而不是Access。 2) 您正在x64操作系统上运行,这意味着以下情况属实

64位模式,应用程序无法通过连接到数据源 使用适用于Jet的Microsoft OLE DB提供程序。出现此问题是因为 该应用程序需要64位版本的Microsoft OLE DB Jet的提供商。还请注意,网站可以是32位或 64位应用程序

因此,解决方案是使用以下方法:

如果您在64位环境中运行程序,并且需要利用jet 要打开access、excel或文本文件,有几个选项可供选择 让这一切顺利进行在WoW64模式下运行程序(在64位上模拟32位 位系统)。这将使32位驱动程序正常工作如果 应用程序是托管在IIS 7上的web应用程序,您可以选择进行配置 网站应用程序池以32位模式运行用新的 Office 2010,将有新的驱动程序出现,“2010办公系统 驱动程序”,将作为32位和64位版本提供。 您可以使用这些驱动程序让应用程序连接到Access, 64位环境中的Excel和文本文件,使用新的64位 司机。提供商名称为“Microsoft.ACE.OLEDB.14.0”。你不知道 需要购买或安装Office套件时,组件可用 作为单独下载

如果您需要其他帮助,您必须提供您使用的代码


您应该在研究并安装链接库后更新问题中的代码。

出现此错误的原因有很多

1) 参考网站是使用SQL Server数据库而不是Access。 2) 您正在x64操作系统上运行,这意味着以下情况属实

64位模式,应用程序无法通过连接到数据源 使用适用于Jet的Microsoft OLE DB提供程序。出现此问题是因为 该应用程序需要64位版本的Microsoft OLE DB Jet的提供商。还请注意,网站可以是32位或 64位应用程序

因此,解决方案是使用以下方法:

如果您在64位环境中运行程序,并且需要利用jet 要打开access、excel或文本文件,有几个选项可供选择 让这一切顺利进行在WoW64模式下运行程序(在64位上模拟32位 位系统)。这将使32位驱动程序正常工作如果 应用程序是托管在IIS 7上的web应用程序,您可以选择进行配置 网站应用程序池以32位模式运行用新的 Office 2010,将有新的驱动程序出现,“2010办公系统 驱动程序”,将作为32位和64位版本提供。 您可以使用这些驱动程序让应用程序连接到Access, 64位环境中的Excel和文本文件,使用新的64位 司机。提供商名称为“Microsoft.ACE.OLEDB.14.0”。你不知道 需要购买或安装Office套件时,组件可用 作为单独下载

如果你想要额外的