2012-10-15 178 views
2

我对c#很新,刚开始使用数据库。我在项目文件夹做了一个本地数据库,当我点击属性数据库上我碰到一个“连接字符串”为:c#数据库连接字符串

Data Source="C:\Users\Documents\Visual Studio 2012\Projects\DataBaseTest\MyDatabase#1.sdf" 

我的问题很简单,我怎么创建使用该线路的连接字符串?由于某种原因导致写入会产生错误。

SqlConnection con = new SqlConnection(Data Source="C:\Users\Documents\Visual Studio 
    2012\Projects\DataBaseTest\MyDatabase#1.sdf"); 

回答

7

并为您必须使用SqlCeConnection代替SqlConnection(这是用于SQL服务器)。

还必须逃不出你的连接字符串\在后面反斜杠成为该\\

SqlCeConnection sqlConnection = new SqlCeConnection("Data Source=C:\\Users\\Documents\\Visual Studio 
2012\\Projects\\DataBaseTest\\MyDatabase#1.sdf"); 

或使用逐字字符串:

SqlCeConnection sqlConnection = new SqlCeConnection(@"Data Source=C:\Users\Documents\Visual Studio 
2012\Projects\DataBaseTest\MyDatabase#1.sdf"); 

而且,如果你不具备必要的库在您的项目中使用SqlCe参考我的其他答案here

从这里Microsoft SQL Server Compact 4.0

  1. 下载库添加到System.Data.SqlServerCe.dll引用到您的项目
  2. 添加此使用指令using System.Data.SqlServerCe;
  3. 使用SqlCeConnection,而不是SqlConnection
+0

感谢您的信息,没有想法:)但是当我尝试下载它时,我收到一条消息,说我已经有了一个更新的版本(我想它是随Visual Studio一起提供的),但我仍然无法引用它,导致doesent似乎在System.Data中,有任何想法吗? – Jacco

+0

@Jacco查看C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition \ v4.0 \ Desktop(x86)或者C:\ Program Files \ Microsoft SQL Server Compact Edition \ v4.0 \ Desktop '对于x64。 – Nasreddine

+0

它在那里,但我如何参考它? :/ – Jacco

2
SqlConnection con = new SqlConnection(@"C:\Users\Documents\Visual Studio 
    2012\Projects\DataBaseTest\MyDatabase#1.sdf"); 
4

你需要逃避反斜杠(替换用双反斜杠反斜杠)或把一个@你的字符串前面告诉C#把它从字面上看,就像这样:

new SqlConnection("C:\\Users\\...") 

new SqlConnection(@"C:\Users\...") 
3

对于路径,您不能像这样添加反斜杠。你需要逃避反斜杠。有两种方法

逃跑反斜杠

方法#1 - 使用@路径字符串的开头

SqlConnection con = new SqlConnection(@"Data Source=C:\Users\Documents\Visual Studio 
    2012\Projects\DataBaseTest\MyDatabase#1.sdf"); 

方法#2 - 添加双反斜线,而不是一个反斜杠

SqlConnection con = new SqlConnection("Data Source=C:\\Users\\Documents\\Visual Studio 
    2012\\Projects\\DataBaseTest\\MyDatabase#1.sdf"); 
+0

感谢您的所有快速解答! :)似乎工作没有任何错误,但当我运行我的代码,并尝试使用简单的形式和按钮输入数据库中的东西时,我在同一行上得到此错误: “初始化字符串的格式不符合到从索引0开始的规范。“ 任何想法是什么意思? – Jacco

+0

请参阅http://stackoverflow.com/questions/9040266/how-to-fix-error-format-of-the-initialization-string-does-not-conform-to-speci –

0

对于本地数据库在Visual Studio 2012,System.Data.SqlServerCe需要在代码中导入。我创建了一个控制台应用程序,它将连接到我从解决方案资源管理器选项卡添加的本地数据库,并且代码看起来像

SqlCeConnection con = new SqlCeConnection(@"Data ource=C:\Users\MyComputer\Documents\Visual Studio 2012\Projects\ConsoleApplication4\ConsoleApplication4\Database1.sdf"); 
      con.Open(); 

     string sql = "SELECT * FROM Employee";//select query 
     string sql1 = "INSERT INTO Employee(Name, Age)VALUES('aaa', 12)";//insert query 

       SqlCeCommand cmd = new SqlCeCommand(sql, con); 
       SqlCeCommand cmd1 = new SqlCeCommand(sql1, con); 
       cmd1.ExecuteScalar(); // executing insert command 
       SqlCeDataReader reader = cmd.ExecuteReader();//to read data from table 
       while (reader.Read()) 
       { 
        Console.WriteLine(String.Format("{0}, {1}", reader[0],reader[1])); 
       } 
       con.Close();