最新文章:

首页 C/C++

MFC链接数据库

发布时间:2016年03月27日 评论数:抢沙发 阅读数:168

    // TestView.cpp : CTestView 类的实现
    //
    
    #include "stdafx.h"
    // SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
    // ATL 项目中进行定义,并允许与该项目共享文档代码。
    #ifndef SHARED_HANDLERS
    #include "Test.h"
    #endif
    #include "TestDoc.h"
    #include "TestView.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    
    // CTestView
    
    IMPLEMENT_DYNCREATE(CTestView, CFormView)
    
    BEGIN_MESSAGE_MAP(CTestView, CFormView)
    	ON_WM_CONTEXTMENU()
    	ON_WM_RBUTTONUP()
    	ON_BN_CLICKED(IDC_BUTTON_input, &CTestView::OnBnClickedButtoninput)
    	ON_EN_CHANGE(id, &CTestView::OnEnChangeid)
    END_MESSAGE_MAP()
    
    // CTestView 构造/析构
    
    CTestView::CTestView()
    	: CFormView(CTestView::IDD)
    	, id(_T(""))
    	, name(_T(""))
    	, score(_T(""))
    	, grade(_T(""))
    	, m_name(_T(""))
    {
    	// TODO: 在此处添加构造代码
    
    }
    
    CTestView::~CTestView()
    {
    }
    
    void CTestView::DoDataExchange(CDataExchange* pDX)
    {
    	CFormView::DoDataExchange(pDX);
    	DDX_Text(pDX, id, id);
    	DDX_Text(pDX, name, name);
    	DDX_Text(pDX, clasr, score);
    	DDX_Text(pDX, IDC_grade, grade);
    	DDX_Text(pDX, id, m_name);
    }
    
    BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
    {
    	// TODO: 在此处通过修改
    	//  CREATESTRUCT cs 来修改窗口类或样式
    
    	return CFormView::PreCreateWindow(cs);
    }
    
    void CTestView::OnInitialUpdate()
    {
    	CFormView::OnInitialUpdate();
    	GetParentFrame()->RecalcLayout();
    	ResizeParentToFit();
    
    }
    
    void CTestView::OnRButtonUp(UINT /* nFlags */, CPoint point)
    {
    	ClientToScreen(&point);
    	OnContextMenu(this, point);
    }
    
    void CTestView::OnContextMenu(CWnd* /* pWnd */, CPoint point)
    {
    #ifndef SHARED_HANDLERS
    	theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE);
    #endif
    }
    
    
    // CTestView 诊断
    
    #ifdef _DEBUG
    void CTestView::AssertValid() const
    {
    	CFormView::AssertValid();
    }
    
    void CTestView::Dump(CDumpContext& dc) const
    {
    	CFormView::Dump(dc);
    }
    
    CTestDoc* CTestView::GetDocument() const // 非调试版本是内联的
    {
    	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc)));
    	return (CTestDoc*)m_pDocument;
    }
    #endif //_DEBUG
    
    
    // CTestView 消息处理程序
    void CTestView::OnBnClickedButtoninput()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	//AfxMessageBox(_T("Hello"));
    	
    	//1、初始化ADO控件【COM控件,代码可以在你运行之前,或者大程序已启动,初始化】
    	HRESULT hr = ::CoInitialize(NULL);//初始化ADO COM组件
    	if(!SUCCEEDED(hr)){
    		AfxMessageBox(_T("初始化ADO  COM组件错误"));
    		return;
    	}
    
    	//2、使用_ConnectionPtr指针对象,和SQL Server数据库建立一个连接,以备后用【类似通信,用“号码”建立线路】
    	//拿起电话
    	_ConnectionPtr    m_pConnection;
    	m_pConnection.CreateInstance("ADODB.Connection");
    	//找到号码,连接字符串:工具->连接数据库-》服务器名和数据库名->高级里面最下面
    	_bstr_t   strConnect=(_bstr_t )(_T("Provider=SQLOLEDB;Data Source=JF401-09;Integrated Security=SSPI;Initial Catalog=XPF"));
    	//拨号,用可能失败,可以用函数SUCCEEDED()判断是否成功
    	hr = m_pConnection->Open(strConnect,"","",adModeUnknown);//第2,3个数据库的登录名和密码,第4个固定的参数
    
    	if(!SUCCEEDED(hr)){//报错
    		AfxMessageBox(_T("连接SQL Server错误"));
    		return;
    	}
    	//已经连接到数据库SQL Server,可以执行数据库命名了
    	//向数据库添加条记录
    	UpdateData(true);
    	CString str;
    	str.Format("Insert into STUDENT(STID,STName,Grade,Score,Birth)values(\'%s\',\'%s\',\'%s\',%d,\'%s\')",id,name,grade,score,birth);
    	_bstr_t ssql(str);
    	//_bstr_t  ssql((_bstr_t)_T("Insert into STUDENT(STID,STName,Grade,Score,Birth)values(\'x1001\',\'李四\',\'计算机\',98,\'2016-03-26\')"));//将C++语言格式字符串转换为SQL Server形式的字符串
    	
    	//将C++语言格式字符串转换为SQL Server形式的字符串
    	_variant_t  asd;//接受返回的行数值  
    	m_pConnection->Execute(ssql, &asd, adCmdText); 
    	m_pConnection->Close();
    	m_pConnection.Release();
    	::CoUninitialize();//注销控件
    }
    
    
    void CTestView::OnEnChangeid()
    {
    
    }
    
二维码加载中...
本文作者:HDC      文章标题: MFC链接数据库
本文地址:http://hdcin.cn/?post=18
版权声明:若无注明,本文皆为“小胖Blog's”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论