在下面的代码中,我查询我的SQlite数据库并解析它以查看maxlen列中是否有任何值> 30.然后我将这些值添加到一个列表中,我稍后会用它来向用户显示。
我想要的是什么:
现在,如果maxLen> 30中有值,我希望能够知道Seq(列)值与之相关的是什么。
示例:(我知道这些不是> 30但是)说我想要MaxLen列中的值3,4和10。但是有了这些,我还想要相关的Seq值为1,2,3。怎么做?
string sql4 = "select * from abc";
SQLiteCommand command = new SQLiteCommand(sql4, sqlite_conn);
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
{
// Parse Max Length Column
int maxlen;
if (int.TryParse(reader["MaxLen"].ToString(), out maxlen))
if (maxlen> 30.00)
{
MaxLen.Add(maxlen);
maxlen1 = true;
}
}
编辑:我会这样做吗?
string sql4 = "select seq, maxLen from abc where maxLen > 30";
SQLiteCommand command = new SQLiteCommand(sql4, sqlite_conn);
// The datareader allows us to read the table abc row by row
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
{
// Parse Seq column
int seq;
int maxLen1;
if (int.TryParse(reader["Seq"].ToString(), out seq) && int.TryParse(reader["maxLen"].ToString(), out maxLen1))
{
SeqIrregularities.Add(seq);
NewList.Add(maxLen1);
}
答案 0 :(得分:2)
如果要检索Seq
值和大于30的MaxLen
值,则使用select * from abc
可能不合适。如果您这样做,则必须在C#
代码中处理/过滤它们。
为什么不在查询中过滤它们并简化C#
中的所有计算?
您可以使用:
select seq, maxLen from abc where maxLen > 30
然后迭代这个(已经过滤的)结果。
请注意,您应该将所需的任何其他字段添加到select
子句中。