2013-06-02 10 views
7

Używam this video do wypróbowania wyników z DataGridView i otrzymuję powyższy błąd. Poniższy kod odnosi się do tego błędu - przekazuję wartości do procedury przechowywanej, a następnie końcowy SELECT zwraca wartości w tabeli w DataGridView.Błąd C#: "Fill: SelectCommand.Connection nie została zainicjalizowana."

 SqlConnection con = new SqlConnection(); 
     con.ConnectionString = "integrated security=SSPI;data source=SERV;" + "persist security info=False;initial catalog=DB"; 

     con.Open(); 
     SqlCommand select = new SqlCommand("SELECT * FROM Table"); 
     SqlCommand enter = new SqlCommand("sp_Proc", con); 

     // Stored Procedure 
     enter.CommandType = CommandType.StoredProcedure; 
     enter.Parameters.Add(new SqlParameter("@vvalue", SqlDbType.VarChar)).Value = Convert.ToString(txt1.Text); 
     enter.Parameters.Add(new SqlParameter("@dvalue", SqlDbType.Decimal)).Value = Convert.ToDecimal(txt2.Text); 
     enter.ExecuteNonQuery(); 

     // DataGrid returns the SELECT 

     SqlDataAdapter sadapt = new SqlDataAdapter(select); 
     sadapt.SelectCommand = select; 
     DataTable dtab = new DataTable(); 
     sadapt.Fill(dtab); // generates the error 
     BindingSource b = new BindingSource(); 
     b.DataSource = dtab; 
     dGrid.DataSource = b; 
     sadapt.Update(dtab); 

     con.Close(); 
+0

Jaki jest błąd, który ci daje? –

Odpowiedz

13

Nie przechodzą connection obiekt na command. Spróbuj tego zamiast

SqlCommand select = new SqlCommand("SELECT * FROM Table", con); 
+0

Dzięki; twój wzrok przykuł mój błąd. – user123

+0

serdecznie zapraszamy ':)' –

+0

@JohnWoo: Pomogło mi to również .. !! +1 :) – BNN

1

są przechodzącą obiektu połączenie z wpisać komendę ale nie przekazać obiekt połączenia z wybierz polecenie

SqlCommand select = new SqlCommand("SELECT * FROM Table"); 
    SqlCommand enter = new SqlCommand("sp_Proc", con); 

użyć tej

SqlCommand select = new SqlCommand("SELECT * FROM Table",con); 
Powiązane problemy