从列表框中提取信息并将其拉取到组合框中 - 所有这些都使用 SQL Server 数据库



>编辑:根据此处的要求,列表框/组合框的 XAML 代码 - 驱动程序/产品/车辆以及用于称重的文本框。

<ListBox Name="WeighBox" Height="176" SelectionChanged="WeighBox_SelectionChanged"/>
<ComboBox Grid.Row="0" Name="selDriver" HorizontalAlignment="Left" VerticalAlignment="Top" Width="405"/>
<ComboBox Name="selVehicle" Grid.Row="0" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="405"/>
<ComboBox Name="selProduct" Grid.Row="0" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="405"/>
<TextBox Name="weigh1" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Margin="0,0,184.334,-0.667"></TextBox>

我整晚都在试图弄清楚这一点,但没有任何成功。我不确定我是否以正确的方式解决问题,但我们开始了。

我有 3 个组合框,每个组合框从 3 个数据库表中提取信息,还有一个保存按钮将信息保存到另一个数据库表中。我的列表框显示保存到表中的 1 列。我希望能够选择列表框,然后它用字段填充我的组合框。

https://recordit.co/z76BIBByPi 我目前必须给出一个更好想法的视频。我无法解释这些东西来挽救我的生命。

我尝试了休耕的想法,认为可能有某种方法可以将信息导入每个文本框。每个人都给出了自己的错误类型。在我看来,我以错误的方式去做这件事,但我不知道实现它的正确方法。

wreg = selVehicle.SelectedItem.ToString();
wreg = selVehicle.SelectedItem.ToString();
wreg = selVehicle.ItemsSource.ToString();
weigh1.Text = wreg;
selDriver.Text = wdriver;
selProduct.Text = wproduct;
weigh1.Text = wweight;
selVehicle.Text = wreg;
wreg = selVehicle.ItemsSource.ToString();
selVehicle.Items.Add(wreg);

这是我的列表框(和填充),我试图从中提取我的信息

private void WeighBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
SqlConnection con = new SqlConnection(conn.dbPath);
SqlCommand cmd = new SqlCommand("select * from weighings where w_vehicle='" + WeighBox.SelectedItem.ToString() + "' ", con); 
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
int _weighid = dr.GetInt32(0);
string wreg = dr.GetString(16);
string wdriver = dr.GetString(13);
string wproduct = dr.GetString(11);
int wweight = dr.GetInt32(3);
selDriver.SelectedItem.Equals(wdriver);// = wdriver;
selProduct.SelectedItem = wproduct;
selVehicle.SelectedItem = wreg;
weigh1.Text = wreg;
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
public void FillListbox()
{
try
{
SqlConnection con = new SqlConnection(conn.dbPath);
SqlCommand cmd = new SqlCommand("select * from weighings where w_status = 'Pending'", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string wreg = dr.GetString(16);
string wdriver = dr.GetString(13);
string wproduct = dr.GetString(11);
int wweight = dr.GetInt32(3);
WeighBox.Items.Add(wreg);
selVehicle.Text = wreg;
selDriver.Text = wdriver;
selProduct.Text = wproduct;
}
con.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}

这是我的组合框之一,你可以想象它们是相同的。

public void FillDriverComboBox()
{
try
{
SqlConnection con = new SqlConnection(conn.dbPath);
SqlCommand cmd = new SqlCommand("select * from drivers", con);
con.Open();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
selDriver.ItemsSource = dt.DefaultView;
selDriver.DisplayMemberPath = "driver_name";
selDriver.SelectedValuePath = "driver_id";
cmd.Dispose();
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

我希望当我单击列表框中的某个项目时,它会填充我的组合框和我想要的任何文本框。我可以很好地填充我的文本框,但这是我真正想要填充的组合框。我可以制作更多文本框来填充我的信息,但我想让我的字段将来能够更新。最好立即解决问题。

如果要根据列表框的选定项填充组合框,那么首先应填充列表框。之后,添加一个鼠标单击事件方法来获取项目值,并编写代码来填充同一函数上的组合框。

相关内容

最新更新