当在列表框中选择一个项目时,我试图在它们各自的文本框中显示项目值
这就是我设置它的方式:
这是值在列表框中显示的方式
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();
我试图在其中一个文本框中显示值。
现在,当我单击一个项目时,文本框中没有任何显示。任何帮助表示赞赏
有更好的方法来完成您正在做的事情,因此您可以利用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}'";
您可能还想检查参数化您的查询,但这是一个不同的问题......
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句