2012-11-14 117 views
2

我正在创建一个应用程序,我想使用存储在本地客户机上的本地数据库。我在辩论如果我应该使用SQLITE或者在Visual Studio中有帮助我的东西。另一件事是我想在应用程序启动时以编程方式在用户目录中创建数据库。本地数据库与Visual Studio 2012

我在网上看到一些东西,但文章都是关于SQL Server的东西,并不是我想用这个应用程序来做的。所有数据都需要存储在本地机器上。

+2

你为什么要建立一个问题的数据库? – MyCodeSucks

+0

你可以使用MDF文件,但只有当它在你的本地目录中,否则会导致mnay潜在的安全违规 –

+0

你可以使用sdf文件这里是通过http://goo.gl/Hbpeq –

回答

5

您可以使用SQL Server Compact,它具有Visual Studio中的工具。它与SQL Server的语法兼容,但将其数据存储在本地文件中,您可以即时创建(例如在应用程序启动时)。

+0

散步我想用SQL Server因为我知道SQL语法,所以紧凑于我的应用程序你知道以编程方式创建数据库和表的好例子吗? –

+1

使用[SqlCeEngine.CreateDatabase](http://msdn.microsoft.com/zh-cn/library/system.data.sqlserverce.sqlceengine.createdatabase.aspx)创建数据库;使用'CREATE TABLE'语法来创建表。 – prprcupofcoffee

1

我不确定编程方式(这可能是你的意思,对吧?)创建数据库,但SQL Server Compact Edition已经为我简单的应用程序过去很好。它是嵌入式的,甚至以中等信任度运行。

2

您可以使用从他们的网站提供的库即时创建SQLite数据库。我曾在许多项目中使用过它,以用于我的个人代码,以及它在Data Explorer的某些内部体系结构(IBM Product)中使用。有些样品C#创建一个数据库文件:

 if (!Directory.Exists(Application.StartupPath + "\\data")) 
     { 
      Directory.CreateDirectory(Application.StartupPath + "\\data"); 
     } 
     SQLiteConnection conGlobal; 
     if (!File.Exists(dbGlobal)) 
     { 
      conGlobal = new SQLiteConnection("Data Source=" + dbGlobal + ";New=True;Compress=True;PRAGMA synchronous = 1;PRAGMA journal_mode=WAL"); 
      conGlobal.SetExtendedResultCodes(true); 
      firstRun = true; 
     } 
     else 
     { 
      conGlobal = new SQLiteConnection("Data Source=" + dbGlobal + ";Compress=True;PRAGMA synchronous = 1;PRAGMA journal_mode=WAL"); 
      conGlobal.SetExtendedResultCodes(true); 
     } 
     try 
     { 
      conGlobal.Open(); 
     } 
     catch (Exception) 
     { 
      //do stuff 
     } 

只需启动该文件的连接,如果新= TRUE作为连接字符串传递将创建它。然后,您可以查询它并获得与任何数据库一样的结果。

您还可以使用密码保护数据库文件,以防止只使用SQLite-Shell或其他SQLite数据库查看器打开数据库文件。

关于在线连接字符串中传递的注记语句的详细信息,请参阅以下内容:http://www.sqlite.org/pragma.html