Datagridview无法显示数据表

时间:2014-03-13 09:31:46

标签: c# datagridview

我有这个类(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);

请帮忙!

2 个答案:

答案 0 :(得分:0)

在分配DataBind()

后,您已为网格提供DataSource 像这样

dgvRecorOverview.DataBind();

答案 1 :(得分:0)

您必须将DataGridView.AutoGenereateColumns = true;设置为根据您设置为DataTable的{​​{1}}自动创建列。检查您填充的DataSource是否具有预期的行和列。如果DataTable (dt)为空,那么显然您无法在网格中看到任何数据。