C# 使用access数据库将具有多个值的项从listbox显示到textbox
当在列表框中选择一个项目时,我试图在其各自的文本框中显示项目值 我是这样设置的:C# 使用access数据库将具有多个值的项从listbox显示到textbox,c#,ms-access,C#,Ms Access,当在列表框中选择一个项目时,我试图在其各自的文本框中显示项目值 我是这样设置的: 这是将值显示到列表框的方式 command.CommandText = "select * from ItemsList"; OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { EditItemBrowserBox.Items.Add
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();
}
EditIDTB.Text=reader[“ID”].ToString()
正在尝试在其中一个文本框中显示值
现在,当我单击一个项目时,文本框中没有显示任何内容。感谢您的任何帮助有更好的方法来完成您正在做的事情,因此您可以利用
DisplayMember
和ValueMember
,但您遇到的问题源于使用向用户显示的整个文本
字段
如果他们的选择是这样的:
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}'";
您可能还想检查参数化查询,但这是另一个问题…那么我如何才能让它查找字符串中的值呢?非常感谢,但它只在ItemName为单个单词时起作用,但在ItemName中有两个单词时不起作用,当只有两个空格时,我确定要分开。我会仔细研究一下,谢谢,我希望我能投票给你,这样人们就可以看到:为了能够使用空格,你可以按ID而不是itemname排序