C# Sqlite ExecuteReader 最大返回
Posted
技术标签:
【中文标题】C# Sqlite ExecuteReader 最大返回【英文标题】:C# Sqlite ExecuteReader maximum return 【发布时间】:2015-06-13 23:26:41 【问题描述】:ExecuteReader
可以返回的最大行数是多少?我在一个表中有大约 67 行,它只返回前 20 行。
这是我的一部分来源:
SQLiteConnection sDBConnection = new SQLiteConnection("Data Source=Database.ddb;Version=3");
sDBConnection.Open();
string sqlCom = "SELECT * FROM Table1";
SQLiteCommand scdCommand = new SQLiteCommand(sqlCom, sDBConnection);
SQLiteDataReader reader = scdCommand.ExecuteReader();
while(reader.Read())
string Value1 = (string)reader["Col1"];
bool Value2 = true;
string Value3 = (string)reader["Col2"];
object[] row = Value1, Value2, Value3, Value4, Value5 ;
DataGridView1.Rows.Add(row);
reader.Close();
sDBConnection.Close();
当然,不在 while 循环中的值在别处定义。
【问题讨论】:
使用调试器,也许你有一个导致异常的空值。数据读取器没有行数限制。 如果有最大值肯定超过 20。还有其他问题。有什么例外吗? 不,这就是我困惑的原因。我已经检查并测试了所有值以确保没有任何 null。 对于表中的所有行,Col1
和 Col2
是否有价值?
做到了。非常感谢杰基。我在其中一行中有一个空值,但调试器没有抛出任何异常,所以我认为这不是问题。
【参考方案1】:
尝试如下编辑您的代码:
SQLiteConnection sDBConnection = new SQLiteConnection("Data Source=Database.ddb;Version=3");
sDBConnection.Open();
string sqlCom = "SELECT * FROM Table1";
SQLiteCommand scdCommand = new SQLiteCommand(sqlCom, sDBConnection);
SQLiteDataReader reader = scdCommand.ExecuteReader();
while(reader.Read())
string Value1 = reader["Col1"] != null ? Convert.ToString(reader["Col1"]) : string.Empty;
bool Value2 = true;
string Value3 = reader["Col2"] != null ? Convert.ToString(reader["Col2"]) : string.Empty;
object[] row = Value1, Value2, Value3 ;
DataGridView1.Rows.Add(row);
reader.Close();
sDBConnection.Close();
移除 Value4 和 Value5 或赋予其默认值
【讨论】:
以上是关于C# Sqlite ExecuteReader 最大返回的主要内容,如果未能解决你的问题,请参考以下文章
C#个人通信录,里面有个登陆的if (OpertDB.ExecuteReader(sql))这一句不知道怎么解决
SQLDataReader 在 ExecuteReader 之后读取为空