在使用 C# 时对设置与 Microsoft Access 数据库的连接感到困惑

Posted

技术标签:

【中文标题】在使用 C# 时对设置与 Microsoft Access 数据库的连接感到困惑【英文标题】:Confused about setting up a connection to a microsoft access database while using C# 【发布时间】:2015-10-22 15:28:23 【问题描述】:

好的,所以我一直在到处寻找如何将 microsoft access 数据库连接到 C# 命令行应用程序。我在做 Visual Basic 时有使用 Visual Studio 的经验,所以我通过“添加新数据源”菜单将数据库连接到项目。现在我在这里我不知道如何声明连接并打开它。我知道 SQL 代码的基础知识,所以现在这不是真正的问题,它只是连接部分。环顾四周,我发现了这个:

using System.Data.SqlClient;
string connectionString = null;

connectionString = ;
SqlConnection cnn ;
cnn = new SqlConnection(connectionString);
try

    cnn.Open();
    Console.WriteLine("Connection Open!");
    cnn.Close();

catch (Exception ex)

    Console.WriteLine("Error: Connection Cannot be Opened!");

但我不知道这是做什么的。如果这是错误的,有人可以纠正我并解释一下。请尽量保持简单。

【问题讨论】:

我无法帮助您使用 Access,但我真的推荐任何其他技术。想到 LocalDB 或旧的 Sql Server CE。 msdn.microsoft.com/en-us/library/5ybdbtte(v=vs.71).aspx 【参考方案1】:

您只需使用 OleDb* 而不是 Sql*。即:

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\MyFolder\Northwind.accdb";
using( OleDbConnection cnn = new OleDbConnection(connectionString))

    try
    
        cnn.Open();
        Console.WriteLine("Connection Open!");
        cnn.Close();
    
    catch (Exception ex)
    
        Console.WriteLine("Error: Connection Cannot be Opened!");
    

PS:我不建议您像使用数据库一样使用 access。它不是数据库。这是伪装成羊的狼。如果你不关心你的数据,那没关系。

【讨论】:

【参考方案2】:

设置connectionString = null 不起作用!

有关连接字符串的帮助,请参阅:http://www.connectionstrings.com/。这真是一个很棒的网站。

如果您想要连接到 Access,则需要 OleDbConnection,而不是 SqlConnection。后者用于连接到 SQL-Server。

您可以在此处找到示例:Getting values back from OleDbDataReader reading from Access database。

【讨论】:

以上是关于在使用 C# 时对设置与 Microsoft Access 数据库的连接感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

使用 Microsoft.Jet.OLEDB.4.0 从 C# 将行插入 Access db,自动编号列设置为零

C# - MySQL 与 Microsoft SQL Server [关闭]

C#实现打印与打印预览功能

如何对从 C# 应用程序中退出的指令进行采样

如何在 C# (web) 中集中维护一个数学公式,以便在需要时对其进行更改?

C# 集合与泛型