C# - 如何使用Access数据库中的数据填充现有DataGridView

时间:2018-05-07 15:52:45

标签: c# ms-access datagridview

我正在研究Tool Crib系统。我需要一种方法来使用过去的采购订单填充我的dataGridView。PO List on the left side to fill DataGridView。我之前用过这个来填充gridViews:

        con.Open();
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = con;
        string orderNumber = lbOrders.SelectedItem.ToString();
        string query = "SELECT PartNumber from PurchaseOrders WHERE PONumber LIKE '%" + orderNumber + "%' ";
        cmd.CommandText = query;
        //OleDbDataReader reader = cmd.ExecuteReader();
        cmd.ExecuteNonQuery();

        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        dataGridView1.DataSource = dt;

但是我不知道如何填充现有的dataGridView表。因为我不知道如何使用我已经拥有的列来创建采购订单。 da.Fill(dt)只是添加了所有新列,我最终得到了额外的列和很多空单元格。

Extra Column for PartNumber

我尝试使用以下代码填充Item列:

        string query = "SELECT PartNumber from PurchaseOrders WHERE PONumber LIKE '%" + orderNumber + "%' ";
        cmd.CommandText = query;
        OleDbDataReader reader = cmd.ExecuteReader();
        //cmd.ExecuteNonQuery(); //not using this code

        //OleDbDataAdapter da = new OleDbDataAdapter(cmd); //not using this code
        //DataTable dt = new DataTable(); //not using this code
        //da.Fill(dt); //not using this code
        //dataGridView1.DataSource = dt; //not using this code

        List<string> result = new List<string>();

        for (int i = 0; i < result.Count - 1; i++)
            while (reader.Read())
        {
            result.Add(reader.GetString(0));
            //dataGridView1.Rows[0].Cells["Item"].Value = (reader["PartNumber"]).ToString(); //not using this code
        }

        for (int i = 0; i < result.Count-1; i++)
        {
            foreach (var item in result)
            {
                dataGridView1.Rows[i].Cells["Item"].Value = result[i];
            }
        }
        con.Close();

这段代码对我有用。但是,它一直说我的索引超出范围,并且永远不会正确/完全填充“项目”列。另一个缺点是我仍然需要引入数量。当单元格值发生变化时,我有网格引入其他信息。它会查看项目数据库以获取描述和价格,因此我需要做的就是填写项目和数量列。

我已经在这几个小时了,我需要帮助。

摘要:我需要一种方法来填充我的项目,数量列包含存储在Access数据库中的部件号和数量 - 数据库列是[PO#,PartNumber,Quantity]

很抱歉,如果这看起来很多/不够信息。我只是需要帮助。

0 个答案:

没有答案