我正在尝试将sql服务器数据库连接到c#表单应用程序,但是连接代码中遇到了一个问题,我在表单上创建了一个按钮,以下代码是该按钮的代码:>
public void button1_Click(object sender, EventArgs e)
{
string conString = "Data Source=
(LocalDB)/MSSQLLocalDB;AttachDbFilename=C: /Users/Youssef
Salah/Documents/koko.mdf;Integrated Security=True;Connect Timeout=30";
SqlConnection con = new SqlConnection(conString);
con.Open(); // that line \\
if (con.State == System.Data.ConnectionState.Open)
{
Console.WriteLine("Done!");
string q = " INSERT INTO Users(ID_User,Name , Email_Address ,
passwordd) VALUES (3 ,'koko' , 'yoyo' , 'lala')";
SqlCommand cmd = new SqlCommand(q, con);
cmd.ExecuteNonQuery();
MessageBox.Show("Connection Open !");
}
con.Close();
}
问题出在该行(con.Open();)应该打开连接,但是似乎编译器不会读取此行,因为if语句中的行无法执行,程序不要打印完成!消息或显示MessageBox
答案 0 :(得分:0)
两件事,连接字符串中的空格可能引起问题,并且您没有任何异常处理来查看发生了什么错误。试试这个:
public void button1_Click(object sender, EventArgs e)
{
try {
string conString = @"Data Source=(LocalDB)/MSSQLLocalDB;AttachDbFilename=C:\Users\Youssef Salah\Documents\koko.mdf;Integrated Security=True;Connect Timeout=30";
SqlConnection con = new SqlConnection(conString);
con.Open(); // that line \\
if (con.State == System.Data.ConnectionState.Open)
{
Console.WriteLine("Done!");
string q = " INSERT INTO Users(ID_User,Name , Email_Address , passwordd) VALUES (3 ,'koko' , 'yoyo' , 'lala')";
SqlCommand cmd = new SqlCommand(q, con);
cmd.ExecuteNonQuery();
MessageBox.Show("Connection Open !");
}
con.Close();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
请注意,我添加了异常处理(try...catch
),如果发生异常,它将显示错误消息。并且我已经清理了您的连接字符串,以在路径名中使用反斜杠(以@
开头的字符串,以便将反斜杠编译为文字反斜杠而不是转义符),并删除了换行符和连接字符串,很可能导致它引用无效的文件名。