通过SqliteDataReader调用LINQ扩展方法

时间:2011-06-25 16:02:53

标签: linq sqlite c#-4.0 datareader

我正在尝试处理来自SQLiteDataReader的输出,我一方面想知道为什么我无法在阅读器上调用Take<>扩展方法(显然那里) sa System.Data.SQLite.Linq汇编),另一方面,如果有更好的方法来处理整个读者的结果,我计划为那些人实现通用的CRUD方法。

using (var con = new SQLiteConnection(str.ConnectionString))
{
    con.Open();
    using (var cmd = new SQLiteCommand(sql, con))
    {
        using (SQLiteDataReader data = cmd.ExecuteReader())
        {
            if (data.HasRows)
            {
                var txt = new StringBuilder();
                while (data.Read())
                {
                    for (int i = 0; i < data.FieldCount; i++)
                    {
                        txt.AppendFormat("{0} ", data.GetValue(i));
                    }
                    txt.AppendLine(Environment.NewLine);
                }
                Console.WriteLine(txt.ToString());
            }
            data.Close();
        }
    }
    con.Close();
}

为了使扩展方法起作用,我尝试了类似的方法:

txt.AppendFormat("{0} ", Convert.ToString(data.GetValue(i)).Take(10));

但字符串会填充类型。

任何建议都将受到赞赏。非常感谢。

0 个答案:

没有答案