我有这个类(AddRecord)和一个返回数据表的方法:
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 :(得分:0)
在分配DataBind()
DataSource
像这样
dgvRecorOverview.DataBind();
答案 1 :(得分:0)
您必须将DataGridView.AutoGenereateColumns = true;
设置为根据您设置为DataTable
的{{1}}自动创建列。检查您填充的DataSource
是否具有预期的行和列。如果DataTable (dt)
为空,那么显然您无法在网格中看到任何数据。