将所有列读入字符串的最佳方法

时间:2014-05-04 04:35:53

标签: c# .net

我有以下代码来读取SqlDataReader的结果。我需要通过读取每一行来创建resultVal字符串。我需要读取每个列值并与resultVal连接。但是,我不会事先知道查询结果中出现的列数。

目前我正在使用try..catch方法,如下所示,效率不高。 。另一种方法是使用Get number of columns in SqlDataReader

中给出的datareader的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);
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用FieldCount的{​​{1}}属性。此外,最好在连接字符串时使用SqlReader

StringBuilder