我试图在各自的文本框中显示项目的值时在列表框中选择了一个项目
这是怎么我有它设置:
command.CommandText = "select * from ItemsList";
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
EditItemBrowserBox.Items.Add(reader["ID"].ToString() + " " + reader["ItemBrand"].ToString() + " " + reader["ItemName"].ToString() + " " + reader["ItemType"].ToString() + " " + reader["ItemPrice"].ToString());
}
command.CommandText = "select * from ItemsList where ItemName='" + EditItemBrowserBox.Text + "' ";
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
EditIDTB.Text = reader["ID"].ToString();
ItemNameAddTB.Text = reader["ItemName"].ToString();
ItemTypeAddTB.Text = reader["ItemType"].ToString();
ItemBrandAddTB.Text = reader["ItemBrand"].ToString();
ItemPriceAddTB.Text = reader["ItemPrice"].ToString();
}
EditItemBrowserBox是列表框和EditIDTB.Text = reader["ID"].ToString();
is我想显示在文本框中的一个值。
现在,当我点击一个项目没有任何显示在文本框中。任何帮助表示赞赏
有更好的方法来完成你正在做的事情,这样你就可以充分利用DisplayMember
和ValueMember
的,但你遇到的问题,从使用你向用户显示整个Text
场茎。
如果他们的选择是这样的:
001 Acme Anvil Weapon 10.00
然后将查询最终被:
select * from ItemsList where ItemName='001 Acme Anvil Weapon 10.00'
刚刚拆分部分关闭你感兴趣的:
var itemName =
EditItemBrowserBox.Text.Split(new[]{' '}, StringSplitOptions.RemoveEmptyEntries)[2];
command.CommandText = $"select * from ItemsList where ItemName='{itemName}'";
为了解决与具有多个空格的项目名称的问题,您可能希望根据ID而不是选择:
var id = EditItemBrowserBox.Text.Split(' ')[0];
command.CommandText = $"select * from ItemsList where ID='{id}'";
您可能还需要检查到参数化查询中,但是这是一个不同的问题...