1

テーブル内の 1 つのレコードから複数のフィールドを返す SQL 選択ステートメントを作成しました。

これが私の声明です:

-- (item_num being the PK)
SELECT item_num, 
       category, 
       weight, 
       cost, 
       description 
  FROM inv 
 WHERE item_num = @inumber;

各フィールドを変数に保存するにはどうすればよいですか?

while ループで記述されたサンプルを見てきましたが、私のステートメントは int と char を返すので、それらを配列ではなく適切な変数に保存したいと思います。

コーディングを使用してデータベースを操作するのは初めてなので、ご容赦ください。フォーマットをもっとよく理解する必要があります。

答えを探しましたが、関連するものは何もありませんでした。多分私のアプローチはすべて間違っています。

あなたの助けに感謝します。

4

2 に答える 2

2

最終的には、Datareaderを使用する必要があります。これにより、値を変数に直接割り当てることができます。

using (var rdr = db.ExecuteReader(cmd))
{
    myIntValue = (int) rdr["IntValue"];
    myStringValue = rdr["StringValue"].ToString();
}

ただし、あなたの場合、私の提案はDTOを使用し、それに応じてデータレイヤーからこれらを入力することです。

 public class MyDTO
    {
        public int MyInt { get; set; }
        public string MyString { get; set; }
    }

そして戻るIEnumerable<MyDTO>

于 2012-12-05T17:15:03.297 に答える
0

まず第一に、あなたのリターンはintsとcharsではありません。文字列になります。少なくとも、それは私の経験です。そして、それらすべてをMySQLデータリーダーに保存する必要があります。これにより、次のようなことができるようになります。

List<string> weight = new List<string>();

while(dataReader.Read())
{
     weight.Add(dataReader["weight"]);
}

これにより、「重み」列の下にあったクエリのすべての結果から文字列のリストが作成されます。そこから、charsとintにする必要がある場合は、それらを変換できます。ただし、MySQLデータリーダーをよく読んでおくことをお勧めします。上記の私の例は完璧ではありませんが、それは始まりです。

于 2012-12-05T17:11:55.523 に答える