DataReader返回错误的值
本文关键字:错误 返回 DataReader | 更新日期: 2023-09-27 18:27:16
嗨,我真的很困惑。让我先解释一下。我正在尝试从northwind检索数据。在订单表中,第一列是OrderID,第二列是CustomerID
Console.Write(reader[0].ToString());
像这样使用,我可以得到值124812491250等等)。但如果我像下面这样使用。
Console.Write(reader[0].ToString());
Console.Write(" ----------------");
Console.WriteLine(reader[1].ToString());
来自订单的数据这次完全不同。如果你检查订单表,你会发现这些数据不属于OrdersTable。你能帮忙吗?
10779 Mork
10780 Lilas
这是完整的代码
string SQL = "SELECT * FROM Orders";
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(SQL);
cmd.Connection = conn;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
try
{
while (reader.Read())
{
// Console.Write( reader.GetString(1).ToString());
Console.Write(reader[0].ToString());
Console.Write(" ----------------");
Console.WriteLine(reader[1].ToString());
// Console.WriteLine("Customer:" + reader.GetString(1).ToString());
}
Console.ReadLine();
}
finally
{
reader.Close();
conn.Close();
}
Console.Write(reader.GetString(0));
Console.Write(" ----------------");
Console.WriteLine(reader.GetString(1));
或reader.GetInt32(n)
取决于类型是什么?
假设你在每行的前两列之后?
EDIT:我想我一开始看错了这个问题,你是说当你从这个模式中查询Orders表时,你得到的名称在序号位置1,即第二列?
基于这个模式,我搜索了vinet并看到了这个链接,你可以看到海报正在查询customerId == 'VINET'
,所以我怀疑你看到的结果是正确的。尝试运行:
SELECT * FROM Orders WHERE CustomerID = 'VINET'