请教几个问题:组合框,DATAGRID

[复制链接]
查看11 | 回复1 | 2021-1-27 05:22:47 | 显示全部楼层 |阅读模式
1.想用VC2010组合框链接ACCESS数据库,ODBC方式,实现把数据表的内容显示到组合框的下拉列表,另外往组合框输入新的条目会自动录入数据库,请教怎么实现,或者有没有可参考的例子,谢谢;
2.VC2010使用DATAGRID必须注册吗,还有DATAGRID链接数据库可以用ODBC方式吗,我百度的结果大家都是用ADO.
小白一个,有热心的前辈指点一下。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:22:47 | 显示全部楼层
主要就是连接字段,其它的ODBC的方法和操作SQL都是差不多的

voidTestAccessDBData(LPCTSTRszFilePath,LPCTSTRszUID,LPCTSTRszPWD,LPCTSTRszTabName)
{
try
{
//构造连接字符
CStringszConnect;
szConnect.Format(
_T("Driver={MicrosoftAccessDriver(*.mdb)};")
_T("DBQ=%s;")
_T("UID=%s;PWD=%s;"),
szFilePath,szUID,szPWD);
//打开数据库
CDatabasedb;
if(db.OpenEx(szConnect,db.noOdbcDialog|db.useCursorLib))
{
//查询
try
{
CStringszCmd;
szCmd.Format(_T("SELECT*FROM%s"),szTabName);
//这里可以添加附加WHERE条件如WHEREID='1234'
CRecordsetrs(&db);
if(rs.Open(AFX_DB_USE_DEFAULT_TYPE,szCmd,rs.executeDirect))
{
while(!rs.IsEOF())
{
CStringsVal;
rs.GetFieldValue(_T("ID"),sVal);
TRACE(_T("ID=%s\n"),(LPCTSTR)sVal);
rs.MoveNext();
}
//关闭查询
rs.Close();
}
}
catch(CDBException*e)
{
e->ReportError();
e->Delete();
}
//插入输入(INSERTINTO)
try
{
CStringszCmd;
szCmd.Format(_T("INSERTINTO%s(ID,Name)VALUES('1234','test')"),
szTabName);
db.ExecuteSQL(szCmd);
}
catch(CDBException*e)
{
e->ReportError();
e->Delete();
}

//关闭数据库
db.Close();
}
}
catch(CDBException*e)
{
e->ReportError();
e->Delete();
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行