【发布时间】:2017-06-11 23:29:57
【问题描述】:
我是 SQL 初学者,感谢您的关注。我在 Visual Studio 2015 中创建了一个数据库(通过使用“项目”菜单中的“添加新项目”并添加“基于服务的数据库”),现在我想连接到它并在其上读取或写入数据。
但我不知道如何通过代码连接它。
当我在服务器资源管理器中单击数据库时,我使用连接字符串中显示的字符串。
就在这里:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename="c:\users\soroush\documents\visual studio 2015\Projects\databasetest2\databasetest2\Database1.mdf";Integrated Security=True
但是如你所知,当我将它复制并粘贴到一个可以在new sqlConnection(connection string) 中使用的字符串时,它不能使用,因为这个字符串有'\'或'"'
我连接到这个本地数据库的正确字符串是什么?
现在这是我的代码,但没用:
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = c:\users\soroush\documents\visual studio 2015\Projects\databasetest2\databasetest2\Database1.mdf; Integrated Security = True");
con.Open();
string t=@"INSERT INTO Table (Id,name) Values (34, 'John')";
SqlCommand cmd = new SqlCommand(t, con);
cmd.ExecuteNonQuery();
con.Close();
}
private void button2_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = c:\users\soroush\documents\visual studio 2015\Projects\databasetest2\databasetest2\Database1.mdf; Integrated Security = True"))
{
con.Open();
string t = "SELECT * From Table";
SqlCommand cmd = new SqlCommand(t, con);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MessageBox.Show(reader["Id"].ToString() + reader["name"].ToString());
}
con.Close();
}
}
感谢您的帮助
更新:我在写入和读取表格时遇到另一个错误
在您的帮助下,我想我已经连接到我的数据库了。现在我在阅读表格时遇到了另一个错误。这个错误指向
SqlDataReader reader = cmd.ExecuteReader();
在我的代码中说:
System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常附加信息:关键字“Table”附近的语法不正确。
并且在表格上写入错误指向
cmd.ExecuteNonQuery();
在我的代码中:
System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常附加信息:关键字“Table”附近的语法不正确。
我的数据库有一个名为 Table 的表,其中包含两列:Id(int) 和 name(nchar10)
【问题讨论】:
-
我对连接字符串进行了尝试,但也没有用:>"Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename="+"c: \\users\\soroush\\documents \\visual studio 2015\\Projects\\databasetest2\\databasetest2\\Database1.mdf"+";Integrated Security=True"
-
你试过用
\"转义` with\`和"吗? -
去掉字符串中的引号,在字符串前面加一个
@:@"Data Source=... -
我删除了引号并在字符串前添加了一个@。我想我已经连接到数据库,但我有另一个错误。在执行cmd。 System.Data.dll 中发生“System.Data.SqlClient.SqlException”类型的未处理异常
-
阅读 stackoverflow.com/a/13186810/34092 和 stackoverflow.com/a/3501950/34092 。这些将向您展示如何使用 |数据目录|在连接字符串中。
标签: c# sql sql-server database