VS2012如何通过ODBC连接到

VS2012通过ODBC连接到SQLSERVER详细说明

1.      安装好VS2012和SQLSERVER

2.      配置SQLSERVER实用SQL Server Management Studio连接自己的实例(如下图所示)

3.      双击SA,点击登录属性->常规,实用SQL Server身份验证,配置好密码

4.      然后右键点击实例属性,修改安全性为SQL Server和Window身份验证模式

5.      创建一个测试数据库sunyydb,创建一个测试表test,包含2列,id和name

6.      打开

控制面板\所有控制面板项\管理工具\ODBC数据源管理器(界面如下图所示

7.      点击配置:起一个DSN名字,配置SQLSERVER服务器名,点击下一步

8.配置登录密码为刚才修改的sa,密码为第三部配置的密码,客户端配置为TCP/IP,点击下一步

9.修改默认数据库为第五步创建的数据库sunyydb,点击下一步

10.测试数据源,至此ODBC配置完成,后面可以通过MFC执行SQL语句

11.创建一个基于对话框的MFC程序

放入2个EDIT CONTROL和三个按钮

IDC_EDITID:关联成员变量CEdit m_cust_id;

IDC_EDITNAME:关联成员变量CEdit m_cust_name;

IDADD,IDCHECK,IDDEL

12.在对话框类头文件添加”afxdb.h”并且添加成员m_DataBase

classCDateBaseTestDlg :public CDialogEx

#include"afxdb.h"

CDatabase m_DataBase;

14.增加三个按钮的点击事件

具体代码如下:

void CDateBaseTestDlg::OnBnClickedAdd()

{

    //TODO: 在此添加控件通知处理程序代码

    intcustid=0;

    CString csCustName;

    if(!GetCustIdFromEdit(custid))

    {

        AfxMessageBox("Get CustId Error Please input id first");

        return;

    }

    if(!m_cust_name.GetWindowTextLength())

    {

        AfxMessageBox("Cust Name is Null Please input first");

        return;

    }

    m_cust_name.GetWindowText(csCustName);

    try

    {

        CString strsql;

        strsql.Format("insert into test(id,name) values (%d,'%s')",custid,csCustName);

        AfxMessageBox(strsql);

        m_DataBase.ExecuteSQL(strsql);

    }

    catch(CDBException px)

    {

        px.ReportError();

        px.Delete();

    }

 

 

 

 

}

 

 

void CDateBaseTestDlg::OnBnClickedCheck()

{

    //TODO: 在此添加控件通知处理程序代码

    intcutid;

    CString csCustName;

    if(!GetCustIdFromEdit(cutid))

    {

        AfxMessageBox("Update date custid is null");

        return;

    }

    if(!m_cust_name.GetWindowTextLength())

    {

        AfxMessageBox("Update date custname is null");

        return;

    }

    m_cust_name.GetWindowText(csCustName);

    try

    {

        CString str;

        str.Format("update test set name = '%s' where id='%d'",csCustName,cutid);

        m_DataBase.ExecuteSQL(str);

    }

    catch(CDBException px)

    {

        px.ReportError();

        px.Delete();

    }

    AfxMessageBox("Update success");

}

 

 

void CDateBaseTestDlg::OnBnClickedDel()

{

    //TODO: 在此添加控件通知处理程序代码

        intcutid;

    CString csCustName;

    if(!GetCustIdFromEdit(cutid))

    {

        AfxMessageBox("Delete date custid is null");

        return;

    }

    if(!m_cust_name.GetWindowTextLength())

    {

        AfxMessageBox("Delete date custname is null");

        return;

    }

    m_cust_name.GetWindowText(csCustName);

    try

    {

        CString str;

        str.Format("delete from test where id = %d",cutid);

        m_DataBase.ExecuteSQL(str);

    }

    catch(CDBException px)

    {

        px.ReportError();

        px.Delete();

    }

    AfxMessageBox("Delete success");

}

 

你可能感兴趣的:(C++,SQL_SERVER)