使用访问数据库从列表框多个值到文本框的显示项

问题描述 投票:0回答:1

我试图在各自的文本框中显示项目的值时在列表框中选择了一个项目

这是怎么我有它设置:

  1. 这是值是如何显示到列表框中 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()); }
  2. 这是如何我试图让从列表框中显示的值,以一个文本框 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我想显示在文本框中的一个值。

现在,当我点击一个项目没有任何显示在文本框中。任何帮助表示赞赏

c# ms-access
1个回答
1
投票

有更好的方法来完成你正在做的事情,这样你就可以充分利用DisplayMemberValueMember的,但你遇到的问题,从使用你向用户显示整个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}'";

您可能还需要检查到参数化查询中,但是这是一个不同的问题...

© www.soinside.com 2019 - 2024. All rights reserved.