
在C#上读取SQLite,第一个reader正常,第二个怎么都读不出来~~~求高手指点
System.Data.SQLite.SQLiteConnectionconn=newSystem.Data.SQLite.SQLiteConnection();conn...
System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
conn.ConnectionString = DatabasePath;
conn.Open();
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
cmd.Connection = conn;
string sql;
sql = "SELECT * FROM ini";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
bool goahead = true;
string catname = "";
int imax=0;
string tabname = "";
while (reader.Read())
{
if (CSN == reader.GetInt16(0))
{
goahead = false;
tabname = reader.GetString(2);
this.Text = reader.GetString(1);
label5.Text = catname;
}
}
sql = "SELECT * FROM "+ tabname;
cmd.CommandText = sql;
reader = cmd.ExecuteReader();
int i=1;
Question[] Page=new Question[imax];
while (reader.Read())
{
Page[i - 1].Number = reader.GetInt16(0);
Page[i - 1].Text = reader.GetString(1);
Page[i - 1].ChoseA = "A" + reader.GetString(2);
Page[i - 1].ChoseB = "B" + reader.GetString(3);
Page[i - 1].ChoseC = "C" + reader.GetString(4);
Page[i - 1].ChoseD = "D" + reader.GetString(5);
Page[i - 1].Answer = reader.GetString(6);
i++;
} 展开
conn.ConnectionString = DatabasePath;
conn.Open();
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
cmd.Connection = conn;
string sql;
sql = "SELECT * FROM ini";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
bool goahead = true;
string catname = "";
int imax=0;
string tabname = "";
while (reader.Read())
{
if (CSN == reader.GetInt16(0))
{
goahead = false;
tabname = reader.GetString(2);
this.Text = reader.GetString(1);
label5.Text = catname;
}
}
sql = "SELECT * FROM "+ tabname;
cmd.CommandText = sql;
reader = cmd.ExecuteReader();
int i=1;
Question[] Page=new Question[imax];
while (reader.Read())
{
Page[i - 1].Number = reader.GetInt16(0);
Page[i - 1].Text = reader.GetString(1);
Page[i - 1].ChoseA = "A" + reader.GetString(2);
Page[i - 1].ChoseB = "B" + reader.GetString(3);
Page[i - 1].ChoseC = "C" + reader.GetString(4);
Page[i - 1].ChoseD = "D" + reader.GetString(5);
Page[i - 1].Answer = reader.GetString(6);
i++;
} 展开
3个回答
展开全部
把第二个Reader分离出来到另一个函数,用不同的CONNECTION,COMMAND
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
reader.Close()没加
更多追问追答
追问
加了reader.Close()之后直接就报错无法运行了……不知何故
追答
while (reader.Read())
{
if (CSN == reader.GetInt16(0))
{
goahead = false;
tabname = reader.GetString(2);
this.Text = reader.GetString(1);
label5.Text = catname;
}
}
reader.Close();//你加在这里了没?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义表,直接读表里就完了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |