c#数据库连接字符串

时间:2012-10-15 09:27:50

标签: c# database sql-server-ce

我对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");

6 个答案:

答案 0 :(得分:7)

您正在使用SQL Server Compact版数据库,为此必须使用SqlCeConnection而不是SqlConnection(用于SQL Server)。

您还必须将连接字符串\中的后反斜杠转义为此\\

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.   
  3. 使用指令 using System.Data.SqlServerCe ;
  4. 添加此指令   
  5. 使用 SqlCeConnection 代替 SqlConnection
  6.   

答案 1 :(得分:4)

你需要转义反斜杠(用双反斜杠替换反斜杠)或在字符串前放一个@来告诉C#按字面意思理解它,就像这样:

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

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

答案 2 :(得分: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");

答案 3 :(得分:2)

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

答案 4 :(得分:2)

您需要使用@符号来显示字符串是文字的,并忽略特殊字符。

此页面显示示例 http://www.dotnetperls.com/string-literal

答案 5 :(得分: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();