1

我编写了一个 SQL 选择语句,它从表中的 1 条记录中返回多个字段。

这是我的声明:

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

如何将每个字段保存到变量中?

我见过用 while 循环编写的示例,但我的语句返回整数和字符,所以我想将它们保存到可敬的变量而不是数组中。

请多多包涵,因为我是使用编码处理数据库的新手。我只需要更好地理解格式。

我已经搜索了答案,但找不到任何相关内容。也许我的方法都是错误的。

感谢您的帮助。

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

首先,您的回报不会是整数和字符。这将是字符串。至少,这是我的经验。您应该将它们全部存储在 MySQL 数据读取器中。这将允许您执行以下操作:

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

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

它的作用是从“权重”列下的所有查询结果中创建一个字符串列表。从那里,如果您需要它们成为字符和整数,您可以转换它们。但我建议您阅读MySQL datareaders。我上面的例子并不完美,但它是一个开始。

于 2012-12-05T17:11:55.523 回答