vC 与数据库操作——向ctrllist控件中插入数据的精华

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

                       VC中ctrllist的使用与数据库链接

清浪冲天 马敬发 QQ: 283989349   E-mail: mjf150080@tom.com

有问题时,我们可以通过http://www.hustc.mpc.cn 这个论坛,

或 通过QQ 共同学习和讨论


 

// DIALOG_TRAINCOURSE.cpp : implementation file
//

#include "stdafx.h"
#include "train.h"
#include "DIALOG_TRAINCOURSE.h"
#include "CourseInfo.h"
#include "DIALOG_APPISE.h"
#include "CourseSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDIALOG_TRAINCOURSE dialog


CDIALOG_TRAINCOURSE::CDIALOG_TRAINCOURSE(CWnd* pParent /*=NULL*/)
 : CDialog(CDIALOG_TRAINCOURSE::IDD, pParent)
{
 //{{AFX_DATA_INIT(CDIALOG_TRAINCOURSE)
  // NOTE: the ClassWizard will add member initialization here
 //}}AFX_DATA_INIT
}


void CDIALOG_TRAINCOURSE::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(CDIALOG_TRAINCOURSE)
 DDX_Control(pDX, IDC_LIST1, m_content);
 //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDIALOG_TRAINCOURSE, CDialog)
 //{{AFX_MSG_MAP(CDIALOG_TRAINCOURSE)
 ON_BN_CLICKED(IDC_BUTTONADD, OnButtonadd)
 ON_BN_CLICKED(IDC_BUTTONDEL, OnButtondel)
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDIALOG_TRAINCOURSE message handlers

void CDIALOG_TRAINCOURSE::OnButtonadd()
{
 // TODO: Add your control notification handler code here
 m_database.Close();
 CCourseInfo m_courseinfo;
 m_courseinfo.m_database.Open(_T("train"));
 m_courseinfo.DoModal();
 RefreshData();
}

void CDIALOG_TRAINCOURSE::OnOK()
{
 // TODO: Add extra validation here
 CDIALOG_APPISE m_apprisemanager;
 int i=m_content.GetSelectionMark();
 CString strSQL;
 if(i==-1){
  MessageBox("please choose a course first!");
 }
 else{
  m_apprisemanager.course_id=atoi(m_content.GetItemText(i,0));
  m_database.Close();
  m_apprisemanager.m_database.Open(_T("train"));
  m_apprisemanager.DoModal();
 }

}

BOOL CDIALOG_TRAINCOURSE::OnInitDialog()
{
 CDialog::OnInitDialog();
 
 // TODO: Add extra initialization here
 m_content.InsertColumn(0,"课程号");
 m_content.InsertColumn(1,"课程类别");
 m_content.InsertColumn(2,"课程中文名称");
 m_content.InsertColumn(3,"课程英文名称");
 m_content.InsertColumn(4,"课程描述");
 m_content.InsertColumn(5,"课程学时");
 m_content.InsertColumn(6,"教材");
 m_content.InsertColumn(7,"等效课程");
 m_content.InsertColumn(8,"预修课程");
 m_content.InsertColumn(9,"初训/复训标志");
 m_content.InsertColumn(10,"开课部门");
 RECT rect;
 m_content.GetWindowRect(&rect);
 int wid = rect.right - rect.left;
 m_content.SetColumnWidth(0,wid/11);
 m_content.SetColumnWidth(1,wid/11);
 m_content.SetColumnWidth(2,wid/11);
 m_content.SetColumnWidth(3,wid/11);
 m_content.SetColumnWidth(4,wid/11);
 m_content.SetColumnWidth(5,wid/11);
 m_content.SetColumnWidth(6,wid/11);
 m_content.SetColumnWidth(7,wid/11);
 m_content.SetColumnWidth(8,wid/11);
 m_content.SetColumnWidth(9,wid/11);
 m_content.SetColumnWidth(10,wid/11);
 m_content.SetExtendedStyle(LVS_EX_FULLROWSELECT);
 RefreshData(); 
 
 return TRUE;  // return TRUE unless you set the focus to a control
               // EXCEPTION: OCX Property Pages should return FALSE
}

void CDIALOG_TRAINCOURSE::RefreshData()
{
 if(!m_database.IsOpen()){
  m_database.Open(_T("train"));
 }
 m_content.DeleteAllItems();
 CCourseSet m_recordset(&m_database);
 CString strSQL;
 strSQL.Format("select * from COURSE");
 m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
 CDBVariant varValue;
 if(m_recordset.GetRecordCount()!=0) m_recordset.MoveFirst();
 char buf[20];
 int i=0;
 while(!m_recordset.IsEOF())
 {
  int temp=0;
  m_recordset.GetFieldValue(temp,varValue);
  sprintf(buf,"%d",varValue.m_iVal); m_content.InsertItem(i,buf);
  m_recordset.GetFieldValue(1,varValue);
  m_content.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
  m_recordset.GetFieldValue(2,varValue);
  m_content.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
  m_recordset.GetFieldValue(3,varValue);
  m_content.SetItemText(i,3,varValue.m_pstring->GetBuffer(1));
  m_recordset.GetFieldValue(4,varValue);
  m_content.SetItemText(i,4,varValue.m_pstring->GetBuffer(1));
  m_recordset.GetFieldValue(5,varValue);
  sprintf(buf,"%d",varValue.m_iVal); m_content.SetItemText(i,5,buf);
  m_recordset.GetFieldValue(6,varValue);
  m_content.SetItemText(i,6,varValue.m_pstring->GetBuffer(1));
  m_recordset.GetFieldValue(7,varValue);
  sprintf(buf,"%d",varValue.m_iVal); m_content.SetItemText(i,7,buf);
  m_recordset.GetFieldValue(8,varValue);
  sprintf(buf,"%d",varValue.m_iVal); m_content.SetItemText(i,8,buf);
  m_recordset.GetFieldValue(9,varValue);
  sprintf(buf,"%d",varValue.m_chVal); m_content.SetItemText(i,9,buf);
  m_recordset.GetFieldValue(10,varValue);
  sprintf(buf,"%d",varValue.m_iVal); m_content.SetItemText(i,10,buf);
  m_recordset.MoveNext();
  i++;
 }
}

void CDIALOG_TRAINCOURSE::OnButtondel()
{
 // TODO: Add your control notification handler code here
 int i=m_content.GetSelectionMark();
 CString strSQL;
 if(i==-1){
  MessageBox("please choose a record first!");
 }
 else{
  int keyid=atoi(m_content.GetItemText(i,0));
  strSQL.Format("delete from COURSE where COURSE_ID=%d",keyid);
  m_database.ExecuteSQL(strSQL);
  strSQL.Format("delete from COURSE_EVALUATION where COURSE_ID=%d",keyid);
  m_database.ExecuteSQL(strSQL);
  m_database.Close();
  RefreshData();
 } 
}

void CDIALOG_TRAINCOURSE::OnCancel()
{
 // TODO: Add extra cleanup here
 m_database.Close();
 CDialog::OnCancel();
}

数据库中的数据表添加到ListControl控件 数据库中的数据表添加到ListControl控件、将数据库中的数据表添加到ListControl控件 立即下载

相关推荐

VC 树叉控件TreeCtrl、ListCtrl 用法实例.rar

VC 树叉控件TreeCtrl、ListCtrl 用法实例演示源码,也就是树形菜单,在VC 窗体中使用树形菜单控件的方法和思路演示,已为你做成了完整的例子,从此你可以在你的软件窗口中添加入这种树形的展开菜单了,体验软件操作体验。

VC6.0给ListView(CListCtrl)添加数据

VC6.0给ListView(CListCtrl)添加数据CListCtrl* theCtrl = GetListCtrl(); theCtrl.InsertColumn(0,"姓名",LVCFMT_CENTER,50); theCtrl.InsertColumn(0,"班级",LVCFMT_CENTER,50); 如何将 “张三”加入到姓名列中;如何将“初三四班”加入到班级列中? 

暖暖斜阳 3610

jdbc批量 (绝对经典)

jdbc的三种批量 不要错过,下载后绝不后悔

ListCtrl 技巧集

 1. ListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLICON: 为每个item显示小图标      LVS_LIST: 显示一列带有小图标的item      LVS_REPORT: 显示item详细资料      直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”----------

FISH 的专栏 1740

JDBC 造数据、批量数据保存

package luna.platform.frame.utils; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.SQLException; import luna.platform.frame.utils.DBUtils; /** ...

qq_37538698的博客 956

数据批量处存储

数据批量处存储 JDBC里面为了提升多条更新语句的执行性能,所以提供有专属的批量操作,那么本次就需要通过批量操作的形式实现一个一对多关联关系的数据存储。现在假设有 如下的两张数据表,现在要求通过面向对象的设计方式实现数据的添加,即:可以同时创建多个部门,每个部门保存有多个雇员信息,随后将这些信息全部保存在数据库之中(注:暂不考虑数据已经存在的设计),本程序的数据表结构如下。 在程序的实现过程之中,首先- -定要有描述程序结构的基本类定义,随后还需要手工设置相应的关联,在进行JDBC数据添.

weixin_46245201的博客 530

JDBC 批量存入数据库

使用JDBC操作数据库时,可以使用   PreparedStatement 的 addBatch() 批量执行方法,测试代码如下,有个特别注意的地方 当要批量插入时最后把自动提交去掉,不然效率会低很多。 public static void main(String[] args) { Connection connection = null; PreparedStatement

zxc_user的博客 912

SpringBoot使用JdbcTemplate批量保存

@Autowired DataSourceProperties dataSourceProperties; @Autowired ApplicationContext applicationContext; public List<SubjectKycFileVO> batch() { // JDB...

weixin_30896825的博客 836

jdbc批量操作

jdbc批量操作,为了让大量的数据能成功的保存到数据库中,使用批量操作是一个很好的方法。通过connection和PreparedStatement来完成批处理操作。 具体操作如下: 1 首先得到connection对象。 Connection conn=getConnection(); 2 得到connection对象原来的自动提交的值 boolean autoComm

xclsky的博客 1070

可以输入编辑CListCtrl列表

编辑CListCtrl列表 可以输入文本、可编辑、连接ADO数据库

VC 6.0 在CtrlList列表中插入内容行.rar

本源码演示VC 6.0 在CtrlList内容列表中插入内容行,也就是在CtrlList列表视图中新增一行数据CtrlList插入数据的一个例子,之前发的是一个CtrlList表头排序的代码,相对于排序功能,本实例同样很基储很实用,如何在CtrlList插入一行内容,如果你要学习VC 编程,这个代码还是挺有用的。实现本功能涉及:   设置列表控件的报表显示方式、在列表控件插入列、在列表控件插入行、插入列表项、设置子列表项等内容。

JAVA原生JDBC代码实现表记录批量插表保存

【代码】JAVA原生JDBC代码实现表记录批量插表保存

piaoyunlive的博客 616

如何封装底层jdbc框架(二)

请注意,这个示例仍然非常简化,用于演示目的。在实际应用中,您可能需要添加更多的功能和细节,以及考虑性能、安全性、并发性等方面的问题。提供下更多功能,以增强 JDBC 封装框架。,使其使用连接池来获取连接。最后,我们创建了一个服务类。,用于管理数据库连接。我们还修改了数据库操作类。在这个扩展后的示例中,我们引入了一个连接池类。,它使用连接池来创建数据库操作对象。

猿脑2.0的博客 248

jeecgboot框架设置SpringJDBC批量保存

1、修改数据库sys_data_source表中的db_url字段值,在原来的db_url结尾拼接&allowMultiQueries=true&rewriteBatchedStatements=true 2、清理redis缓存sys:cache:dbconnect:dynamic:xxxxx(数据库名称) 3、再次执行官网testJdbcInsert100000BatchSave()方法 4、搞定收工,10000条数据保存时间平均700毫秒左右 ...

qq_32292169的博客 664

VC++列表控件Report报表样式初始化及添加数据基本方法

1、添加ListCtrl控件 2、属性中View设置为Report   3、类向导为列表控件关联变量:   4、设置列宽: CRect rectLocal;  m_ListLocal.GetClientRect(rectLocal); //获得当前客户区信息  m_ListLocal.SetColumnWidth(0,rectLocal.Width()/2);

wangwenjing90的专栏 8670
上一篇: C#中控制流程
下一篇: VC开发数据库系统管理员密码修改模块
ma88fa
博客等级 码龄23年 3粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值