Существуют более эффективные способы выполнения ваших действий, поэтому вы можете воспользоваться 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}'";
Чтобы обойти проблемы с именами элементов, которые имеют несколько пробелов, вы можете выбрать вместо этого на основе идентификатора:
var id = EditItemBrowserBox.Text.Split(' ')[0];
command.CommandText = $"select * from ItemsList where ID='{id}'";
Возможно, вы также захотите проверитьв параметризации ваших запросов, но это другая проблема ...