2012-07-30 65 views
0

我之前创建了一个小型会计应用程序。它使用SQL Server 2008作为后端数据存储。现在我意识到SQL Server对于这样的小程序PLUS来说太多了,它不是非常便携的。我的意思是我想在我的USB存储棒上安装这个应用程序,以便随时随地访问,而且SQL Server不会在任何地方都可以使用从SQL Server中将数据访问策略替换为访问C#中的MDB文件

。所以现在我想从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); 
      } 
     } 
+0

谁格式化我的代码,我很感谢您。我自己尝试这个,但编辑器中的CODE按钮看起来不起作用。 – user1451111 2012-07-30 15:08:16

+0

如果我介意自己的权利,从新建项向导添加“本地数据库”之后,您只需将新修改的连接字符串和更改对象从SqlConnection指向SqlCeConnection,从SqlCommand指向SqlCeCommand等等。无需服务器或外部驱动程序。 – Independent 2012-07-30 15:11:52

回答

1

而不是使用Access,我会使用LocalDB。如果对连接字符串以外的代码进行任何更改,它只需要很少的操作。

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也是一个非常好的嵌入式数据库。

+0

所以我需要将它安装在我打算运行我的应用程序的任何机器上 – user1451111 2012-07-30 14:59:03

+1

是的,它必须安装在本地机器上。如果你不想这样做,我会通过SQL CE推荐SQLite。 HTTP://www.sqlite。org/ – 2012-07-30 15:28:58

1

我会为小型项目推荐SQL CE

的LocalDB VS SQL Server精简

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

+0

我很想实现SQL CE,因为它具有in-proc DDL moe,但是没有'Stored Procedures'功能可能会阻止我使用它。 – user1451111 2012-07-30 15:10:19