1、头文件定义
在头文件中声明以下变量和函数:
// 实现
public:
void initSqlite(); //初始化数据库
void initWindowShow();
void refreshList(); //刷新列表
public:
CString m_NameString; //姓名
CString m_ChineseString;
CString m_MathString;
CString m_EnglishString;
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CListCtrl m_ListCtrl;
afx_msg void OnBnClickedInsertBtn();
afx_msg void OnBnClickedDeleteBtn();
afx_msg void OnBnClickedModifyBtn();
CEdit m_sName;
CEdit m_sChinese;
CEdit m_sMath;
CEdit m_sEnglish;
afx_msg void OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult);
2、初始化数据库
void CSqlite3Dlg::initSqlite()
{
//打开数据库
const string studentDB = "student.db";
//创建表格
string create_student_table = "CREATE TABLE " + student_table + "(" +
"Name TEXT," +
"Chinese INTEGER," +
"Math INTEGER," +
"English INTEGER"
");";
CSDDb::GetInstance().SetDBFileName(studentDB);
bool ret = CSDDb::GetInstance().CreateTable(create_student_table, student_table);
if (!ret)
{
MessageBox("数据库表格创建失败!");
}
}
3、插入操作
//插入数据
void CSqlite3Dlg::OnBnClickedInsertBtn()
{
// TODO: 在此添加控件通知处理程序代码
CString name_str, chinese_str, math_str, english_str, str;
string sql, tmp_str;
m_sName.GetWindowText(name_str);
m_sChinese.GetWindowText(chinese_str);
m_sMath.GetWindowText(math_str);
m_sEnglish.GetWindowText(english_str);
str.Format("Values('%s',%s,%s,%s)", name_str, chinese_str, math_str, english_str);
tmp_str = str.GetBuffer();
sql = "insert into " + student_table + "(Name,Chinese,Math,English) " + tmp_str;
CSDDb::GetInstance().InsertData(sql);
//将当前插入的数据显示到列表控件中
m_ListCtrl.InsertItem(0, name_str);
m_ListCtrl.SetItemText(0, 1, chinese_str);
m_ListCtrl.SetItemText(0, 2, math_str);
m_ListCtrl.SetItemText(0, 3, english_str);
m_ListCtrl.SetTextBkColor(RGB(155, 155, 155));
m_ListCtrl.Invalidate(); //刷新列表
}
4、删除数据
//删除数据
void CSqlite3Dlg::OnBnClickedDeleteBtn()
{
// TODO: 在此添加控件通知处理程序代码
if (m_NameString.IsEmpty())
{
MessageBox("请选择要删除的选项!");
return;
}
string selectName = m_NameString.GetBuffer();
string sql = "delete from " + student_table + " where Name=" + "'" + selectName + "'";
CSDDb::GetInstance().DeleteData(sql);
refreshList(); //重新刷新列表
}
5、修改数据
//修改数据
void CSqlite3Dlg::OnBnClickedModifyBtn()
{
// TODO: 在此添加控件通知处理程序代码
if (m_NameString.IsEmpty())
{
MessageBox("请选择要更新的选项!");
return;
}
string name_str, chinese_str, math_str, english_str;
m_sName.GetWindowText(m_NameString);
m_sChinese.GetWindowText(m_ChineseString);
m_sMath.GetWindowText(m_MathString);
m_sEnglish.GetWindowText(m_EnglishString);
name_str = m_NameString.GetBuffer();
chinese_str = m_ChineseString.GetBuffer();
math_str = m_MathString.GetBuffer();
english_str = m_EnglishString.GetBuffer();
string sql = "UPDATE " + student_table + " SET " + "Chinese=" + chinese_str + ", " + "Math=" + math_str + ", " + "English=" + english_str + " WHERE " + "Name=" + "'" + name_str + "'";
CSDDb::GetInstance().UpdataData(sql);
refreshList();
}
6、效果如下图所示:
完整代码连接如下,欢迎下载
https://download.youkuaiyun.com/download/csdn_zyp2015/10783926