2016-03-29 9 views
0

Hallo ich einen Code in Datagridview für Windows geschrieben haben, nicht initialisiert wie untenDatagridview-Eigenschaft Commandtext wurde in C#

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString); 
SqlCommand sqlCmd = new SqlCommand(); 
sqlCmd.Connection = con; 
con.Open(); 
sqlCmd.CommandType = CommandType.Text; 
SqlCommand CommandText = new SqlCommand("SELECT * FROM report", con); 
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);//its pointing to this line and says ExecuteReader: CommandText property has not been initialized. 
DataTable dtRecord = new DataTable(); 
sqlDataAdap.Fill(dtRecord); 
dataGridView1.ReadOnly = true; 
dataGridView1.DataSource = dtRecord; 

Bitte lassen Sie mich wissen, was das Problem in dem Code?

Antwort

0

Assign Command den definierten Befehl anstelle für die Schaffung neue SqlCommand

sqlCmd.CommandType = CommandType.Text; 
sqlCmd.CommandText = "SELECT * FROM report"; 
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd); 
DataTable dtRecord = new DataTable(); 
sqlDataAdap.Fill(dtRecord); 

Es ist nicht notwendig, einen Befehl zu definieren, unter Verwendung von Datentabelle Adapter zu füllen; Sie können einfach das Gleiche tun, indem Sie den folgenden Code:

SqlDataAdapter sqlDataAdap = new SqlDataAdapter("SELECT * FROM report", con); 
    DataTable dtRecord = new DataTable(); 
    sqlDataAdap.Fill(dtRecord); 

Lesen Sie mehr auf SqlDataAdapter

0

Weil Sie nie die CommandText Eigenschaft auf sqlCmd gesetzt. Stattdessen haben Sie ein SekundenSqlCommand Objekt:

SqlCommand CommandText = new SqlCommand("SELECT * FROM report", con); 

die Sie nie verwendet.

Es klingt wie Sie die CommandTextEigenschaft auf dem Objekt, das Sie bereits setzen wollten:

sqlCmd.CommandText = "SELECT * FROM report"; 
Verwandte Themen