C# SQLDataReader字段顺序是否重要?
假设我有一个代码块,它从数据库中检索行并将它们写入变量(C# SQLDataReader字段顺序是否重要?,c#,sql,sqldatareader,C#,Sql,Sqldatareader,假设我有一个代码块,它从数据库中检索行并将它们写入变量(html) 让我们假设我需要它们以精确的顺序输出-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
html
)
让我们假设我需要它们以精确的顺序输出-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以正确的顺序读取它们而更有效 不,顺序无关紧要。您可以按任意顺序访问它们。您已经有了这两个测试用例,您可以自己测试它。你最好自己检查一下,而不是在网上随便听陌生人说话 我应该这样做吗 你当然可以
SqlDataReader
不会强制您按行的顺序读取行。你可以按任何顺序使用它们
第二种方法会因为SQLDataReader而更有效吗
按正确的顺序读
我认为这无关紧要SqlDataReader
不读取只读第5行的前四行。因此,它们之间没有性能问题使用它们,哪一个更适合您阅读。
作为Tim,您可以在select语句中使用列名,以便在有很多列的情况下更易于阅读
如果需要,指定列名是否有性能优势
仍在检索所有列吗
否。
SELECT*FROM
和SELECT col1、col2、col3、col4、col5 FROM
之间没有性能优势,两者相当。(我假设您的表中只有5列)简短回答:不,没关系。做可读性最好、不易出错的事情。但是你不应该写SELECT*FROM
而是SELECT col1,col2,col3,。。。从
。我个人不会担心性能,除非它太慢。我会使用列名使其更具可读性。另外,还可以考虑使用StringBuilder,而不是包含字符串,因为这样可以快得多。我通常使用列名,但这只是一个示例,所以我不必费心将它们编成=)出于兴趣,如果仍在检索所有列,指定列名是否有性能优势?
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)
);
}