Cannot populate the list with data from all rows of sqlite3 database table ,error: Trace/breakpoint trap(core dumped)
Cannot populate the list with data from all rows of sqlite3 database table ,error: Trace/breakpoint trap(core dumped)
我是wxWidgets 和sqlite3 的初学者。
我试图在列表视图中显示来自 table 的数据。
table 有几行和三列,我已经在列表视图中创建并插入了这些列。
这是我遇到问题的部分代码:
int i = 0;
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_stmt *cstmt;
const char* sql = "SELECT *FROM List";
sqlite3_open("MEMBERS.db",&db);
sqlite3_prepare_v2(db,sql,-1,&stmt,NULL);
sqlite3_step(stmt);
while(sqlite3_step(stmt) == SQLITE_ROW)
{
list -> InsertItem(i,sqlite3_column_text(stmt,i));
list->SetItem(i,i+1,sqlite3_column_text(stmt,i+1),-1);
list ->SetItem(i,i+2,sqlite3_column_text(stmt,i+2),-1);
i++;
}
sqlite3_finalize(stmt);
每当我编译并尝试 运行 时,我都会收到一条错误消息“/src/common/list.cpp(317): assert "Assert failure" failed in Item(): invalid index in wxListBase::Item”
如果我注释掉这两行 'list -> SetItem(...)',我不会收到此错误,并且我会看到第一列中显示的 table 第二行中的数据。
我该如何解决这个问题?
为什么使用 i+1
和 i+2
作为 SetItem()
的 列 索引?这显然是错误的,列编号为 0、1 和 2。
我是wxWidgets 和sqlite3 的初学者。 我试图在列表视图中显示来自 table 的数据。 table 有几行和三列,我已经在列表视图中创建并插入了这些列。
这是我遇到问题的部分代码:
int i = 0;
sqlite3 *db;
sqlite3_stmt *stmt;
sqlite3_stmt *cstmt;
const char* sql = "SELECT *FROM List";
sqlite3_open("MEMBERS.db",&db);
sqlite3_prepare_v2(db,sql,-1,&stmt,NULL);
sqlite3_step(stmt);
while(sqlite3_step(stmt) == SQLITE_ROW)
{
list -> InsertItem(i,sqlite3_column_text(stmt,i));
list->SetItem(i,i+1,sqlite3_column_text(stmt,i+1),-1);
list ->SetItem(i,i+2,sqlite3_column_text(stmt,i+2),-1);
i++;
}
sqlite3_finalize(stmt);
每当我编译并尝试 运行 时,我都会收到一条错误消息“/src/common/list.cpp(317): assert "Assert failure" failed in Item(): invalid index in wxListBase::Item” 如果我注释掉这两行 'list -> SetItem(...)',我不会收到此错误,并且我会看到第一列中显示的 table 第二行中的数据。 我该如何解决这个问题?
为什么使用 i+1
和 i+2
作为 SetItem()
的 列 索引?这显然是错误的,列编号为 0、1 和 2。