C#SQL Server数据库查询

时间:2017-09-04 11:34:56

标签: c# sql-server

我编写了以下代码来查询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);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

也请发布错误消息。

您可能会遇到DbNull值的问题。在使用以下代码解析值之前检查DbNull:

SqlReader.IsDBNull(column)

或者将数据加载到DataTable中:

DataTable dt = new DataTable();

using (SqlDataReader reader = cmd1.ExecuteReader())
{
    dt.Load(reader);
}