向Excle中插入多个表

向Excle中插入表,点击按钮时 编辑框中的内容 不能和以前的相同

//使用CDatabase、CRecordset时,需要使用的头文件  
#include <odbcinst.h>  
#include <afxdb.h>  

// 递进初始化 CDatabase、CRecordset对象 以及初始化之后的相关操作  
// num 控制Table的名字
// 函数功能仅仅是创建新表 并向 新表中插入几条数据
void CExcle2Dlg::AddTableS(CString num)
{
	m_Driver  ="Microsoft Excel Driver (*.xls)";
	m_ExcelFile = GetSpecialPath();
	
	//1.通过连接数据源间接连接到驱动上
	//m_DSN.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",m_Driver,m_ExcelFile);

	//2.直接连接到驱动上
	m_DSN.Format("DRIVER={%s};DNS='';FIRSTROWHASNAME=1;READONLY=FALSE;CREATE_DB\"%s\";DBQ=%s",
		m_Driver,m_ExcelFile,m_ExcelFile);
	
	m_Database = new CDatabase;
	BOOL bRetDatabase=m_Database->OpenEx(m_DSN, CDatabase::noOdbcDialog);
	
	if(!bRetDatabase)
		return;
	CStringArray arrSQL;
	CString str;
	str.Format("CREATE TABLE [GGGG%s] ([姓名] char(255), [年龄] char(255))",num);
	arrSQL.Add(str);str.Empty();
	str.Format("INSERT INTO [GGGG%s$A1:IV1] ([姓名], [年龄]) VALUES ('谢志敏', '26岁')",num);
	arrSQL.Add(str);str.Empty();
	str.Format("INSERT INTO [GGGG%s$A1:IV2] ([姓名], [年龄]) VALUES ('张海平', '24岁')",num);
	arrSQL.Add(str);str.Empty();
	str.Format("INSERT INTO [GGGG%s$A1:IV3] ([姓名], [年龄]) VALUES ('李志超', '26岁')",num);
	arrSQL.Add(str);str.Empty();
	str.Format("INSERT INTO [GGGG%s$A1:IV4] ([姓名], [年龄]) VALUES ('刘永健', '25岁')",num);
	arrSQL.Add(str);str.Empty();
	str.Format("INSERT INTO [GGGG%s$A1:IV5] ([姓名], [年龄]) VALUES ('等异形', '26岁')",num);
	arrSQL.Add(str);str.Empty();

	for (int i=0;i<6;i++)
	{
		m_Database->ExecuteSQL(arrSQL.GetAt(i));
	}
	
	m_Recordset = new CRecordset(m_Database);
	BOOL bRetRecordset=FALSE;
	
	try 
	{
		str.Format("SELECT * FROM [GGGG%s$A1:IV65536]",num);
		bRetRecordset=m_Recordset->Open(CRecordset::forwardOnly,str, CRecordset::readOnly);
		str.Empty();
	}
	catch (...)
	{
		str.Empty();
		::MessageBox(0,0,0,0);
		delete m_Recordset;
		m_Recordset=NULL;
	}
	
	if(bRetRecordset)
		m_Recordset->Close();
	m_Database->Close();
}

测试用例:EDIT控件改变num的内容

void CExcle2Dlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	Invalidate(FALSE);
	CString str;
	str.Empty();
	m_CtrlEdit.GetWindowText(str);
	AddTableS(str);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值