我编写了一个SQL select语句,它返回表中1条记录的多个字段。
以下是我的发言:
-- (item_num being the PK)
SELECT item_num,
category,
weight,
cost,
description
FROM inv
WHERE item_num = @inumber;
如何将每个字段保存到变量中?
我看过用while循环写的样本,但是我的语句返回了int和chars所以我想将它们保存到可敬的变量而不是数组。
请耐心等待,因为我刚开始使用带编码的数据库。我只需要更好地理解格式。
我已经搜索了答案,但无法解决任何问题。也许我的方法都错了。
感谢您的帮助。
答案 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。我上面的例子并不完美,但这是一个开始。