我有一个列表框,其中的项是另一个列表框中的两列(Game_ID +“-” + Name“)的串联。因此,每个列表框项目如下所示:
1- Game#1
2- Game#2
...
...
10-游戏#10
...
100-游戏#100
我需要知道如何仅将参数设为列表项的game_ID部分。所以基本上我只需要连字符的左边。
string newPGame = "INSERT INTO admin.promo_games(promo_ID, Game_ID) VALUES(@PID, @GameID)"
SqlCommand insGames = new SqlCommand(newPGame, misc);
insGames.Parameters.AddWithValue("@PID", txtID.Text);
insGames.Parameters.AddWithValue("@GameID", lstSelGames.SelectedValue);
foreach (string item in lstSelGames.Items)
{
insGames.ExecuteNonQuery();
}
答案 0 :(得分:2)
您可以使用Substring
和int.Parse
来解析数字:
var itemText = lstSelGames.SelectedValue.ToString();
var numberString = itemText.Substring( itemText.IndexOf("-") );
var number = int.Parse(numberString);
更好的解决方案是创建一个代表列表中项目的类,然后在此处使用强类型实例:
public class Game
{
public int Id {get;set;}
public string Name {get;set;}
public override string ToString()
{
return Id + Name;
}
}
然后SelectedValue
实际上将是Game
类型:
var game = (Game)lstSelGames.SelectedValue;
//use game.Id