我对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");
答案 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
- 将
System.Data.SqlServerCe.dll
的引用添加到您的项目- 使用指令
添加此指令using System.Data.SqlServerCe
;- 使用
醇>SqlCeConnection
代替SqlConnection
答案 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)
您需要使用@符号来显示字符串是文字的,并忽略特殊字符。
答案 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();