dao连接数据库的方法和使用。

本人花不少时间研究    VC中用DAO连接ACCESS数据库 的连接及修改问题
今天终于解决了
关键源码如下:


void CDAOTestDlg::OnOK() 
{
 // TODO: Add extra validation here
  try 
  {
   //第一种方法在VC6.0中通过
   CDaoDatabase db;
   CString str;
   //此处据实际路径修改
   str="D:\\Phone.mdb";
   //AfxGetModuleState()->m_dwVersion   =   0x0601;
   db.Open(str);
   db.Execute("delete * from phones");
   db.Close();

 //第二种方法通过,需把数据库文件DAOTest.mdb调至debug目录下
/*
    TCHAR m_tzFileName[250]; 
  GetModuleFileName(NULL, m_tzFileName, MAX_PATH);        
  lstrcpy(m_tzFileName + lstrlen(m_tzFileName) - 4, TEXT(".mdb"));

  CDaoDatabase db;
  db.Open((LPCTSTR)m_tzFileName);
  db.Execute("delete * from phones");
  db.Close();
*/
   //下面是第三种方法,验证通过
/*  CDaoDatabase db;
  CDaoRecordset RecSet(&db);
  CString sqlcmd="select * from phones where pole='1234'";
  db.Open("DAOTest.mdb",false,false);
  RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,sqlcmd,NULL);
  db.Execute("delete * from phones");
  db.Close();
*/
  }
  catch(CDaoException * pe)
  {
   
  AfxMessageBox(pe->m_pErrorInfo->m_strDescription,
    MB_ICONEXCLAMATION);
  MessageBox("数据出错!", "增加数据", MB_ICONERROR+MB_OK);
  pe->Delete();
  }
  
}


使用Qt连接数据库可以使用Qt提供的Qt SQL模块,其中包含了Qt SQL模块的三个重要的类:QSqlDatabase、QSqlQuery和QSqlTableModel。 首先,我们需要添加Qt SQL模块到项目中。可以在.pro文件中添加"QT += sql"来使得项目能够使用Qt SQL模块。 接下来,我们需要创建一个QSqlDatabase对象来连接数据库。可以使用QSqlDatabase::addDatabase函数添加一个数据库连接,并设置相应的数据库驱动、主机名、用户名、密码等信息。例如,可以使用如下代码连接SQLite数据库: ``` QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("path_to_database_file.sqlite"); if (!db.open()) { qDebug() << "Unable to open database"; return; } ``` 在连接数据库成功后,我们可以执行SQL查询语句。可以使用QSqlQuery类来执行SQL语句,并获取结果。例如,可以使用如下代码执行一个查询语句并获取结果: ``` QSqlQuery query; query.exec("SELECT * FROM table_name"); while (query.next()) { QString column1 = query.value(0).toString(); int column2 = query.value(1).toInt(); // 处理查询结果 } ``` 除了手动执行SQL语句外,Qt还提供了QSqlTableModel类来简化数据库表的操作。通过设置数据库连接和表名,我们可以通过QSqlTableModel来从数据库中检索数据、更新数据等。例如,可以使用如下代码创建一个QSqlTableModel对象并从数据库中加载数据到表格视图中: ``` QSqlTableModel model; model.setTable("table_name"); model.setEditStrategy(QSqlTableModel::OnFieldChange); model.select(); QTableView tableView; tableView.setModel(&model); tableView.show(); QLineEdit filterLineEdit; QSortFilterProxyModel proxyModel; proxyModel.setSourceModel(&model); tableView.setModel(&proxyModel); connect(&filterLineEdit, &QLineEdit::textChanged, &proxyModel, &QSortFilterProxyModel::setFilterFixedString); ``` 以上就是使用Qt连接数据库的基本流程,通过Qt提供的Qt SQL模块和相关类可以方便地进行数据库的操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值