从部分列表框项创建参数

时间:2018-09-17 19:29:59

标签: c# sql

我有一个列表框,其中的项是另一个列表框中的两列(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();
          }

1 个答案:

答案 0 :(得分:2)

您可以使用Substringint.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