将数据访问策略从SQL Server替换为C#中的Access MDB文件

时间:2012-07-30 14:49:18

标签: c# sql-server ms-access

我不久前创建了一个小型会计应用程序。它使用SQL Server 2008作为后端数据存储。现在我意识到SQL Server对于这样的

来说太过分了

小程序PLUS它不是很便携。我的意思是我希望在我的USB记忆棒上安装此应用程序,以便在任何地方轻松访问,而SQL Server将不会

无处不在。所以现在我想将数据存储从SQL Server替换为可移植的东西,即MS Access MDB文件。

1-这是一个不错的选择还是我应该使用SQL Server Express版本? 2-我没有使用SQL Express版本的经验。如果我使用它,是否需要在我打算运行我的应用程序的任何机器上? 2-我应该在代码中做些什么更改才能使其与MDF文件(或SQL Express)兼容?

正如我所说,它是一个非常简单的程序,它使用连接模型来获取和插入当前数据。例如

void bindGrid()
        {
            try
            {
                using (SqlConnection con = new SqlConnection(ConnectionString))
                {
                    DataSet set = new DataSet();
                    SqlDataAdapter da = new SqlDataAdapter();
                    SqlCommand selectCommand = new SqlCommand("SELECT * FROM Categories ORDER BY name", con);
                    da.SelectCommand = selectCommand;
                    da.Fill(set);
                    this.grdCategories.DataSource = set.Tables[0];
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

2 个答案:

答案 0 :(得分:1)

我会使用LocalDB,而不是使用Access。除了连接字符串之外,对代码的更改应该很少。

http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

  

LocalDB专为开发人员创建。它非常易于安装,无需管理,但它提供与常规SQL Server Express相同的T-SQL语言,编程表面和客户端提供程序。实际上,以SQL Server为目标的开发人员不再需要在其笔记本电脑和其他开发计算机上安装和管理SQL Server Express的完整实例。此外,如果LocalDB的简单性(和限制)符合目标应用程序环境的需求,开发人员可以继续在生产中使用它,因为LocalDB也是一个非常好的嵌入式数据库。

答案 1 :(得分:1)

我建议SQL CE用于小型项目。

  

LocalDB与SQL Server Compact

     

LocalDB和SQL Server Compact之间存在显着差异:   
执行模式:SQL Server Compact是一个进程内DLL,而LocalDB作为一个单独的进程运行   磁盘使用情况:所有SQL Server Compact二进制文件大约为4MB,而LocalDB安装需要140MB。   
特性:SQL Server Compact提供核心RDBMS功能,如查询,而LocalDB提供了更丰富的功能集,包括存储过程,几何和地理数据类型等。