用vc编数据库我一直不熟,最近摸索写了一个很简单的数据库相关程序,供和我一样菜的新手参考,高手不要笑话。用的是base dialog,手工连接odbc数据库,用sql执行操作。
主界面4个按钮,一个listview,添加记录对话框,4个编辑筐和一个按钮,数据库4个字段。程序很简单,但是一些相关操作都有了,而且都用sql语句操作,这样有些方法不清楚用sql可以都实现。希望能给和我一样弱的人提供一点参考!void CLoadDBDlg::OnOpen() 
{
m_database.Open("not");//打开数据库odbc源是not
m_recordset.m_pDatabase=&m_database; CString sql;
sql="select * from fen order by 学号 asc "; m_recordset.Open(CRecordset::forwardOnly,sql);
ViewRecord();//刷新记录,以及listview


}//打开按扭事件,打开数据库void CLoadDBDlg::ViewRecord()
{
m_lstView.DeleteAllItems();


for(int i=0;i<m_recordset.GetRecordCount();i++)
{
CString s; m_recordset.GetFieldValue("学号",s);
m_lstView.InsertItem(i,s,0);
//m_lstView.SetItemText(i,0,s);

m_recordset.GetFieldValue("姓名",s);
m_lstView.SetItemText(i,1,s); m_recordset.GetFieldValue("数学",s);
m_lstView.SetItemText(i,2,s); m_recordset.GetFieldValue("英语",s);
m_lstView.SetItemText(i,3,s); m_recordset.MoveNext();
}
}//刷新记录,以及listviewvoid CLoadDBDlg::OnAdd() 
{
if(m_addDlg.DoModal()==IDOK)
{
CString sql; sql="insert into fen(学号,姓名,数学,英语) values(";
sql=sql+m_addDlg.m_strNo+",'"+m_addDlg.m_strName+"',"+m_addDlg.m_strMath+","+m_addDlg.m_strEnglish+")";
m_recordset.m_pDatabase->ExecuteSQL(sql); m_recordset.Close();
CString sql1;
sql1="select * from fen order by 学号 asc ";
m_recordset.Open(CRecordset::forwardOnly,sql1);
ViewRecord();
}
}//添加记录void CLoadDBDlg::OnDel() 
{
POSITION pos;
pos=m_lstView.GetFirstSelectedItemPosition();
if(pos==NULL)
{
return;
}
else
{
int index=m_lstView.GetNextSelectedItem(pos);
CString str,sql;
str=m_lstView.GetItemText(index,0);
sql="delete from fen where 学号=";
sql=sql+str;
m_recordset.m_pDatabase->ExecuteSQL(sql); m_recordset.Close();
CString sql1;
sql1="select * from fen order by 学号 asc ";
m_recordset.Open(CRecordset::forwardOnly,sql1);
ViewRecord();
}}//删除记录void CLoadDBDlg::OnClose() 
{
m_recordset.Close();
m_database.Close();
}//关闭数据库