我想将datagridview中的数据加载到另一个Form中的combobox来更新问题是在productname组合框中没有选择特定项目对productid有什么解决方案请帮忙
// Code of gridview form
private void invoiceItemsDetailsDataGridView_DoubleClick(object sender, EventArgs e)
{
int index = invoiceItemsDetailsDataGridView.Rows.GetFirstRow(DataGridViewElementStates.Selected);
//string productid = invoiceItemsDetailsDataGridView.Rows[index].Cells["ProductId"].Value.ToString();
//string productName = invoiceItemsDetailsDataGridView.Rows[index].Cells["ProductName"].Value.ToString();
invoiceItemDetailChangeForm icf = new invoiceItemDetailChangeForm();
icf.CurrentQuantity = Convert.ToUInt16(invoiceItemsDetailsDataGridView.Rows[index].Cells["Quantity"].Value);
icf.ProductId = Convert.ToUInt16(invoiceItemsDetailsDataGridView.Rows[index].Cells["ProductID"].Value); ;
icf.ShowDialog();
}
// class level在invoiceItemDetailChangeForm中声明为int以更新
public int CurrentQuantity { get; set; }
public int ProductId { get; set; }
//与invoiceItemDetailChangeForm表单中的组合框相关的代码
private void invoiceItemDetailChangeForm_Load(object sender, EventArgs e)
{
QtyTextBox.Text = CurrentQuantity.ToString();
ProductNameComboBox.SelectedValue = ProductId;
ProductNameComboBox.DisplayMember = "ProductName";
ProductNameComboBox.ValueMember = "ProductID";
ProductNameComboBox.DataSource = GetAllProducts();
//ProductNameComboBox.SelectedValue = -1;
}
private object GetAllProducts()
{
DataTable dtProducts = new DataTable();
string connString = ConfigurationManager.ConnectionStrings["dbZ"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connString))
{
using (SqlCommand cmd = new SqlCommand("usp_GetAllProductsForPOS", conn))
{
cmd.CommandType = CommandType.Text;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
dtProducts.Load(reader);
}
}
return dtProducts;
}
答案 0 :(得分:0)
您在绑定之前设置了选定的值,必须在绑定之后移动它
试试这个
private void invoiceItemDetailChangeForm_Load(object sender, EventArgs e)
{
QtyTextBox.Text = CurrentQuantity.ToString();
ProductNameComboBox.DisplayMember = "ProductName";
ProductNameComboBox.ValueMember = "ProductID";
ProductNameComboBox.DataSource = GetAllProducts();
//ProductNameComboBox.SelectedValue = -1;
ProductNameComboBox.SelectedValue = ProductId;
}