2014-03-13 58 views
0

我有这个类(的AddRecord)用方法返回一个数据表:的DataGridView无法显示的数据表

public DataTable SelectRec(ComboBox cb, DateTimePicker dtp1, DateTimePicker dtp2) 
{ 
    SqlDataAdapter sqladpt = new SqlDataAdapter(); 
    SqlConnection conn = new SqlConnection(connectionStrings); 
    DataTable dt = new DataTable(); 

    try 
    { 
     conn.Open(); 
     SqlCommand myCmd = conn.CreateCommand(); 
     myCmd.CommandType = CommandType.StoredProcedure; 
     myCmd.CommandText = "SelectAccountRecord"; 
     myCmd.Parameters.AddWithValue("@date1", dtp1.Text); 
     myCmd.Parameters.AddWithValue("@date2", dtp1.Text); 
     myCmd.Parameters.AddWithValue("@newspaper", cb.Text); 
     myCmd.ExecuteNonQuery(); 
     sqladpt.SelectCommand = myCmd; 
     sqladpt.Fill(dt); 
     sqladpt.Dispose(); 
     //DataSource = ds.Tables["[a]"].DefaultView; 
    } 
    catch { } 

    return dt; 
} 

所以我呼吁其他此方法在我的datagridview显示为下面的数据表的内容

AddRecord ad = new AddRecord(); 
dgvRecorOverview.DataSource= ad.SelectRec(cbNewspaperRO, dtpFromDate, dtpToDate); 

请帮忙!

+0

有什么错误? – Derek

回答

0

你必须给DataBind()为网格分配DataSource

这样

dgvRecorOverview.DataBind(); 
0

您必须设置DataGridView.AutoGenereateColumns = true;创建自动根据您设置为DataSourceDataTable列后。检查您填写的DataTable (dt)是否具有预期的行和列。如果DataTable为空,那么显然你没有在网格中看到任何数据。