有关Access数据库存取的问题

dolphin1030 2010-05-11 09:54:25
如何将一个ListBox中的数据存在数据库中的一个字段下面,并且每条记录的字符串个数不一定 以及如何从数据库中读取该ListBox中的所有记录
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lirg8405 2010-05-11
  • 打赏
  • 举报
回复
先把字段类型设置为text
void __fastcall TForm1::Button5Click(TObject *Sender)
{
String SQL;
TStringList *List0;
List0 = new TStringList();
SQL = "create table [001](test text,id autoincrement(1,1) primary key)";
ADOQuery1->ExecSQL();
for(int i=0;i<ListBox1->Count;i++)
{
List0->Add(ListBox1->Items->Strings[i].Trim() ;
}
SQL = "insert into [001](test) values('"List0->Text"')";
ADOQuery1->ExecSQL();
}

读的时候直接List0->Text = ADOQuery1->FieldByName("test")->AsString;
大概是这样的,没测试过
亮剑_ 2010-05-11
  • 打赏
  • 举报
回复
楼上代码是把每个项目以逗号分隔存在字段中的
周药师 2010-05-11
  • 打赏
  • 举报
回复

//读出数据
void __fastcall TForm1::Button5Click(TObject *Sender)
{
AnsiString SQL = "select * from MyTable" ;
ADOQuery1->Close() ;
ADOQuery1->SQL->Clear() ;
ADOQuery1->SQL->Add(SQL) ;
ADOQuery1->Open() ;
while(!ADOQuery1->Eof)
{
ListBox1->Items->Add(ADOQuery1->FieldByName("PriKey")->AsString) ;
ADOQuery1->Next() ;
}
}
周药师 2010-05-11
  • 打赏
  • 举报
回复

//存入数据库
void __fastcall TForm1::Button5Click(TObject *Sender)
{
for(int i=0;i<ListBox1->Count;i++)
{
AnsiString Str = ListBox1->Items->Strings[i] ;
AnsiString SQL ;
SQL.sprintf("INSERT INTO MyTable(PriKey) VALUES('%s')",Str.c_str()) ;
ADOQuery1->Close() ;
ADOQuery1->SQL->Clear() ;
ADOQuery1->SQL->Add(SQL) ;
ADOQuery1->ExecSQL() ;
}
}

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧