如何将数据库连接到C#软件

时间:2019-05-02 23:45:41

标签: c# sql database

我正在尝试将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

1 个答案:

答案 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),如果发生异常,它将显示错误消息。并且我已经清理了您的连接字符串,以在路径名中使用反斜杠(以@开头的字符串,以便将反斜杠编译为文字反斜杠而不是转义符),并删除了换行符和连接字符串,很可能导致它引用无效的文件名。