c# - 从部分列表框项创建参数
问题描述
我有一个列表框,其中的项目是不同列表框中两列 (Game_ID+"- "+Name) 的串联。所以每个列表框项目看起来像:
1- 游戏#1
2- 游戏#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();
}
解决方案
您可以使用Substring
andint.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