我有以下代码来读取SqlDataReader的结果。我需要通过读取每一行来创建resultVal字符串。我需要读取每个列值并与resultVal连接。但是,我不会事先知道查询结果中出现的列数。
目前我正在使用try..catch
方法,如下所示,效率不高。
。另一种方法是使用Get number of columns in SqlDataReader
FieldCount
属性
有没有更好的方法将所有列和行值都放入字符串?
注意:我使用的是.Net 2.0
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
if (string.IsNullOrEmpty(resultVal))
{
resultVal = reader.GetString(0);
}
else
{
resultVal = resultVal + "___" + Convert.ToString(reader.GetValue(0));
}
try
{
if (reader.GetValue(1) != DBNull.Value)
{
resultVal = resultVal + "-" + Convert.ToString( reader.GetValue(1));
}
}
catch
{
//do nothing
}
}
}
else
{
//EmptyLogFunction(spStatement);
}
}
答案 0 :(得分:2)
您可以使用FieldCount
的{{1}}属性。此外,最好在连接字符串时使用SqlReader
。
StringBuilder