Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将数据集中的数据插入datagridview_C#_Datagridview_Dataset - Fatal编程技术网

C#将数据集中的数据插入datagridview

C#将数据集中的数据插入datagridview,c#,datagridview,dataset,C#,Datagridview,Dataset,数据库中有3行数据。我首先将这些数据加载到数据集中,但未能将这3行加载到dgvCustListing中。它只加载最后一个数据,顶部有3个空格。有人能指出我的错误吗 多谢各位 private void LoadCustListing() { string sQuery = string.Empty; int rowcount = 0; dgvCustListing.Rows.Clear(); string spartyConn

数据库中有3行数据。我首先将这些数据加载到数据集中,但未能将这3行加载到dgvCustListing中。它只加载最后一个数据,顶部有3个空格。有人能指出我的错误吗

多谢各位

private void LoadCustListing()
    {
        string sQuery = string.Empty;
        int rowcount = 0;
        dgvCustListing.Rows.Clear();
        string spartyConn = ProcessData.GetpartyConnStr();
        using (SqlConnection Conn = new SqlConnection(spartyConn))
        {
            try
            {
                Conn.Open();
                SqlCommand Cmd = new SqlCommand();
                Cmd.Connection = Conn;
                Cmd.CommandTimeout = 1000;


                sQuery = "select pd.Party_Id, pd.Outlet_StoreNo, 'storename', pd.Party_Date, 'time', bc.Child_Name, pd.Party_Status "
                + "from Party_Dtl pd inner join Bday_Child bc "
                + "on pd.Child_Id = bc.Child_Id "
                + "inner join Cust_Dtl cd "
                + "on bc.Parent_Id = cd.Parent_Id "
                + "where pd.Party_Status = 'open' ";

                Cmd.CommandText = sQuery.ToString();
                SqlDataAdapter ExportAdapter = new SqlDataAdapter(sQuery, Conn);
                ExportAdapter.SelectCommand.CommandTimeout = 10000;
                DataSet DSCust_Listing = new DataSet();
                ExportAdapter.Fill(DSCust_Listing, "Cust_Listing");

                foreach (DataRow DSRow in DSCust_Listing.Tables["Cust_Listing"].Rows)
                {
                    rowcount += 1;
                    dgvCustListing.Rows.Add();
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[0].Value = rowcount;
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[2].Value = DSRow["Outlet_StoreNo"];
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[3].Value = "storename";//DSRow["Outlet"];
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[4].Value = DateTime.Parse(DSRow["Party_Date"].ToString());
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[5].Value = "time";//DSRow["Party_Time"]; //Time + AMPM
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[6].Value = DSRow["Child_Name"];
                    dgvCustListing.Rows[dgvCustListing.RowCount - 1].Cells[7].Value = DSRow["Party_Status"];
                }
            }
            catch (Exception ex)
            {
                if (ex.Message != "Exception from HRESULT: 0x800A03EC")
                {

                }
            }
            finally
            {
                Conn.Close();
            }
        }
    }
我认为你应该使用

dgvCustListing.Rows[rowcount-1]=


。。我认为

为了迭代集合并逐行添加,为什么不使用如下绑定

dgvCustListing.AutoGenerateColumns = true;
dgvCustListing.DataSource = DSCust_Listing; // is your dataset
dgvCustListing.DataMember = "Cust_Listing"; // is your table name to bind

因为只有一个查询要执行,所以不需要使用数据集,而是可以使用适配器将结果填充到数据表中。让
DTCust_Listing
成为该数据表,然后您可以将其指定为
dgvCustListing的
DataSource
,我认为您不需要数据集。数据集是表集合的内存表示形式。您可以改为使用DataTable

声明一个数据表

DataTable DSCust_Listing = new DataTable();
不要在数据集中循环,只需执行以下操作

if(DSCust_Listing != null)
{
    dgvCustListing.DataSource = DSCust_Listing;
    dgvCustListing.DataBind();
}

应该可以。

您好,我试过了,但出现了以下错误:错误19'System.Windows.Forms.DataGridView'不包含'DataBind'的定义,并且找不到接受'System.Windows.Forms.DataGridView'类型的第一个参数的扩展方法'DataBind'。(是否缺少using指令或程序集引用?)