Say I have a block of code that retrieves rows from my database and writes them to a variable (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);
}
}
lets assume I need them output in that exact order - 2, 1, 4, 3, 0. Should I do it this way instead?
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)
);
}
Will the second method be more efficient because the SQLDataReader reads them in the correct order?