将MySQL中的项目存储到多个变量中

时间:2012-12-05 17:04:57

标签: c# mysql

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

以下是我的发言:

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

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

我看过用while循环写的样本,但是我的语句返回了int和chars所以我想将它们保存到可敬的变量而不是数组。

请耐心等待,因为我刚开始使用带编码的数据库。我只需要更好地理解格式。

我已经搜索了答案,但无法解决任何问题。也许我的方法都错了。

感谢您的帮助。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

首先,你的回报不会是整数和字符。这将是弦乐。至少,那是我的经历。您应该将它们全部存储在MySQL数据头中。这将允许您执行以下操作:

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

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

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