假设我有一段代码,可以从数据库中检索行并将其写入变量(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/