C++对数据库sqlite3的增、删、查、改基本操作

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.csdn.net/download/csdn_zyp2015/10783926

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值