1

このストアド プロシージャを実行していますが、すべての結果を返して処理するのではなく、変更したいと考えています。ストアド プロシージャの 3 列目の情報を winforms アプリの label.text に返して表示したいと考えています。どうすればそれを行うことができますか。

public IEnumerable GetGuids(int id)
{
    using (SqlCommand _command = new SqlCommand("StoredProc"))
    {
        _command.Connection = new SqlConnection(conString);
        _command.Connection.Open();
        _command.CommandType = CommandType.StoredProcedure;
        _command.Parameters.AddWithValue("@ItemID", id);

        return _command.ExecuteReader(); 
    }
}

次のように、ストアド プロシージャから 3 列目に返されるアイテムを表示したいと思います: itemRow1/itemRow2。

4

2 に答える 2

1
public IEnumerable GetGuids(int id)
{    
  List<string> items = new List<string>();        
  using (SqlCommand _command = new SqlCommand("StoredProc"))
  {
      _command.Connection = new SqlConnection(conString);
      _command.Connection.Open();
      _command.CommandType = CommandType.StoredProcedure;
      _command.Parameters.AddWithValue("@ItemID", id);

      using (var reader = _command.ExecuteReader())
      {
         while (reader.Read())
         {
            items.Add(reader[2].ToString());
         }
      }        
  }
  return items;
}

あなたのためにそれをするべきです。次に、ラベルがどこにあっても、次のようなものです

label.Text = String.Join(",", items.ToArray());

または表示したい方法

于 2013-07-31T13:15:06.033 に答える
0

これは、reader.GetDecimal(columnIndex) のようなものになります。

于 2013-07-31T13:15:54.913 に答える