MFC基于对话框的工程怎么使用数据库保存数据?

MFC基于对话框的工程怎么使用数据库保存数据?,第1张

CString Filepath="Data.accdb"

int i=m_list.GetItemCount()//在列表的队尾添加,所以先获取行数

db.Open(Filepath)

Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0)

Dbset.AddNew()//在记录集的队尾添加

Dbset.SetFieldValue("Name",_variant_t(m_name))

Dbset.SetFieldValue("Age",atol(m_age))//将CString格式转换为数据库规定的格式

Dbset.SetFieldValue("Extra",_variant_t(m_extra))

Dbset.Update()//一定要及时更新

Dbset.Close()

db.Close()//并关闭////////////////////////////

这段代码,是把三个edit控件里的值写入Data.accdb数据库文件中。

直接利用你的 ado 对象调用 sql 的 insert 指令插入记录即可。我不知道你用的什么方式(或者说什么包装类)连接的 access ,所以也无法给出具体的代码。如果可以,你可以贴出部分你连接access时的代码我看下。

如果你是用原生 ado *** 作的话,代码应该类似下面,注意这段代码是写完一条记录就立即就关闭的,你可以等都写完了再关闭:

CoInitialize(NULL)

_ConnectionPtr ppConn(__uuidof(Connection))

_RecordsetPtr ppRst(__uuidof(Recordset))

ppConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0Data Source=D:\\test.mdbPersist Security Info=False"

ppConn->Open("","","",adConnectUnspecified)

CString szSQl 

CString INS_name 

CString INS_age 

GetDlgItemText(IDC_EDIT1,INS_name)

GetDlgItemText(IDC_EDIT2,INS_age)

//下面这两行负责写入数据

szSQl.Format("insert into m_USER (pt_name,pt_age) values ('%s',%d)",INS_name,atol(INS_age))

ppRst=ppConn->Execute(_bstr_t(szSQl),NULL,adCmdText)

ppConn->Close()

ppRst.Release()

ppConn.Release()

CoUninitialize( )

比如将串口接收到的字符保存到access,可以定义一个全局函数void datastore(),

在void CEx4Dlg::OnOnCommMscomm()中调用datastore,下面是具体的代码。

void CEx4Dlg::datastore()

{

_RecordsetPtr m_pRecordset

m_pRecordset.CreateInstance(__uuidof(Recordset))

try

{

m_pRecordset->Open("SELECT * FROM ado",// 查询DemoTable表中所有字段

m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针

adOpenDynamic,

adLockOptimistic,

adCmdText)

}

catch(_com_error *e)

{

AfxMessageBox(e->ErrorMessage())

}

UpdateData(false)

m_pRecordset->AddNew()

m_pRecordset->PutCollect("rec",_variant_t(m_strRecieve))

m_pRecordset->Update()

m_pRecordset->Close()

m_pRecordset = NULL

AfxMessageBox(_T("成功保存记录!"))

return

}

其他怎么连接数据库和串口接收数据应该会吧?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9998819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存