假设我有一段代码,可以从数据库中检索行并将其写入变量(html

using (SqlConnection conn = new SqlConnection())
{
    conn.ConnectionString = ConfigurationManager.ConnectionStrings["connection_string"].ConnectionString;
    SqlCommand cmd = new SqlCommand("SELECT * FROM Table WHERE order_id = @id", conn);
    cmd.Parameters.Add("id", SqlDbType.Int).Value = Request.QueryString["id"];
    conn.Open();
    SqlDataReader sdr = cmd.ExecuteReader();
    while (sdr.Read())
    {
        html += sdr.IsDBNull(2) ? "" : sdr.GetString(2);
        html += sdr.IsDBNull(1) ? 0 : sdr.GetInt32(1);
        html += sdr.IsDBNull(4) ? 0 : sdr.GetInt32(4);
        html += sdr.IsDBNull(3) ? "" : sdr.GetString(3);
        html += sdr.IsDBNull(0) ? 0 : sdr.GetInt32(0);
    }
}


让我们假设我需要它们按照确切的顺序输出-2,1,4,3,0。我应该这样吗?

while (sdr.Read())
{
    html += string.Format("{2}{1}{4}{3}{0}",
        sdr.IsDBNull(0) ? 0 : sdr.GetInt32(0),
        sdr.IsDBNull(1) ? 0 : sdr.GetInt32(1),
        sdr.IsDBNull(2) ? "" : sdr.GetString(2),
        sdr.IsDBNull(3) ? "" : sdr.GetString(3),
        sdr.IsDBNull(4) ? 0 : sdr.GetInt32(4)
    );
}


第二种方法会更有效吗,因为SQLDataReader会以正确的顺序读取它们?

最佳答案

没有顺序没关系。您可以按任意顺序访问它们。您已经拥有两个测试用例,可以自己进行测试。检查自己总是比在互联网上听随机的陌生人更好。

关于c# - SQLDataReader字段顺序重要吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16856283/

10-11 22:43
查看更多