我编写了以下代码来查询SQL Server数据库中的内容。第一个阅读器中的查询有效,但第二个阅读器无法查询。我似乎无法弄清楚为什么两种读者的方法完全相同。任何帮助深表感谢。
命令的参数在上面的函数中给出,该函数不在代码btw中。
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = "...";
conn.Open();
SqlCommand command = new SqlCommand("SELECT stuff FROM table WHERE Belegnummer= @n and Belegjahr=@j", conn);
command.Parameters.Add(new SqlParameter("n", nr));
command.Parameters.Add(new SqlParameter("j", jahr));
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
r = reader.GetInt32(0);
}
}
command.Dispose();
SqlCommand command2 = new SqlCommand("SELECT stuff1, stuff2, stuff3 FROM sameTable WHERE BelID = @rnr", conn);
command2.Parameters.Add(new SqlParameter("rnr", r));
using (SqlDataReader reader2 = command2.ExecuteReader())
{
while (reader2.Read())
{
// variables are defined somewhere above
b = reader2.GetInt32(0);
j = reader2.GetInt32(1);
m = reader2.GetInt32(2);
}
}
}
答案 0 :(得分:1)
也请发布错误消息。
您可能会遇到DbNull值的问题。在使用以下代码解析值之前检查DbNull:
SqlReader.IsDBNull(column)
或者将数据加载到DataTable中:
DataTable dt = new DataTable();
using (SqlDataReader reader = cmd1.ExecuteReader())
{
dt.Load(reader);
}