2015-04-13 5 views
-2

Я создал класс, чтобы я мог быстро и легко подключиться к моей базе данных. К сожалению, это не работает :(C# sqlconnection

так это моя главная:

private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      SqlConnection Connect = sqlConn.openSqlConnection(); 
      Connect.Open(); 
      string querytest = "select * from lars.Kmstand"; 
      SqlCommand comm = new SqlCommand(querytest, Connect); 
      SqlDataReader rdr = comm.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       test.Add(rdr.ToString()); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 


    } 

И это класс, конечно, я изменил строку подключения немного :)

class sqlConn 
{ 
    public static SqlConnection openSqlConnection() 
    { 
     string Password = "Data Source=mssql.--.net;User ID=lars;Password=***********"; 
     using (SqlConnection conn = new SqlConnection(Password)) 
     { 
      return conn; 
     } 
    } 
    public static void closesqlConn(SqlConnection conn) 
    { 
     conn.Close(); 
    } 

Почему это не работает?

И кто-нибудь знает, возможно, лучший способ>?

Спасибо!

+4

** какой ** не работает? – GolfWolf

+0

также неверен формат вашей строки подключения, просто выполните поиск и попробуйте задать много вопросов в SO – jfun

+0

Кроме того, rdr.ToString() возвращает имя класса SqlDataReader, а не содержимое любого поля. – Steve

ответ

0

Вы получили соединение, завернутое в использовании заявления ...

Когда вызывающий код получает соединение, он будет уже удален.

Нет необходимости в обертке, на мой взгляд, просто создайте объект SqlConnection напрямую.