我正在研究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)只是添加了所有新列,我最终得到了额外的列和很多空单元格。
我尝试使用以下代码填充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]
很抱歉,如果这看起来很多/不够信息。我只是需要帮助。