首页 > 解决方案 > 从部分列表框项创建参数

问题描述

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

标签: c#sql

解决方案


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

推荐阅读