SQL Server r2 2008与VS2010相连接(ADO方式)

原创 2015年11月18日 14:23:14

终于连上你,还好我没放弃,在经过四天的努力挣扎后,最后还是在孙大侠的指点后,才发现错误,竟然不是程序的错误,而是SQL 的设置问题,汗颜。。。


首先在网站上下载SQL Server R2 2008的安装包,然后对其安装,网站上都是有安装教程的,我安装的路径就是默认路径,然后再其中以SQL Server身份验证的方式登录。我设置的登录名是:sa 密码是:123456 这样就可以在其中建立新的数据库 取名为school   在其中建立表格sc 包含了sno cno 以及grade三项,并在表格中随便添加些内容,这样基本的数据库就建立好了,接下来就是如何使其与VS2010相连接。

为了测试是否可以连接上你所建立的数据库,首先新建一个txt文件,并将其后缀名修改成.udl  打开该文件在里面填写相关的信息,如下图:


然后进行测试,当现实测试成功时表明可以了,然后以记事本的方法打开该文件,会发现里面会有相关的信息,这部分后面会用到。

在VS2010中建立mfc界面,在stdafx.h的文件中添加代码:

#import "C://Program Files//Common Files//System//ado//msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF")

在对话框窗口中添加了一个连接数据库按钮,一个添加数据库中的数据按钮,以及一个list列表,用于显示数据库中的信息,

首先在OnInitDialog()中添加以下代码:

m_list.ModifyStyle(0, LVS_REPORT);

m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

m_list.InsertColumn(0, _T("学号"), LVCFMT_CENTER, 200);
m_list.InsertColumn(1, _T("课程号"), LVCFMT_CENTER, 150);
m_list.InsertColumn(2, _T("学分"), LVCFMT_CENTER,200);

在连接数据库按钮下添加以下代码:

    // TODO: 在此添加控件通知处理程序代码
::CoInitialize(NULL);   //初始化OLE/COM库环境 
HRESULT hr = NULL;
try
{
hr = m_pConnection.CreateInstance(_uuidof(Connection));//创建连接对象实例
if (SUCCEEDED(hr))
{
m_pConnection->ConnectionString =("Provider = SQLOLEDB.1; Persist Security Info =True; User ID = sa; Password=123456; Initial Catalog = school; Data Source = (local)");

//local是数据库连接中服务器的名字,这部分是在之前用记事本的方式打开的文件中可以看到
hr = m_pConnection->Open("", "", "", adConnectUnspecified);//打开数据库
AfxMessageBox(_T("连接成功"));
if (FAILED(hr))
{
AfxMessageBox(_T("Open Failed!"));
}
}
else
{
AfxMessageBox(_T("Create instance of connection failed!"));
}
}
catch (_com_error e)
{
CString temp;
   temp.Format(_T("数据库连接错误\r\n错误信息为:%s"), e.ErrorMessage());
AfxMessageBox(temp);
}

在添加数据按钮下添加以下代码:

// TODO: 在此添加控件通知处理程序代码
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
   m_pRecordset->Open("select sno, cno, grade from sc",
_variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
}
catch (_com_error &e)
{
AfxMessageBox(e.Description());
}
_variant_t sno, cno, grade;
try
{
int num = m_list.GetItemCount();
while (!m_pRecordset->adoEOF)
{
CString sno= (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("sno"))->Value);
CString cno = (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("cno"))->Value);
CString grade = (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("grade"))->Value);

m_list.InsertItem(num, sno);
m_list.SetItemText(num, 1, cno);
m_list.SetItemText(num , 2, grade);

num++;
m_pRecordset->MoveNext();
}
}
catch (_com_error &e)
{
AfxMessageBox(e.Description());
}

运行以下,大功告成啦~~~~


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

VS2010 MFC + SQL Server 2008 R2 ADO 编程

  • 2017年05月31日 11:29
  • 32.5MB
  • 下载

ADO连接vs2010和sql server

连接字符串的正确性关系着数据库连接的成功性。 字符串的内容可从以下方式获得。 使用新建文件进行连接测试。新建ado.text。然后更改为ado.udl。双击后选择。注意:服务器名称有的后缀有\SQ...

在VS2010环境下用ADO方式连接SQL2008的步骤

由于以前的经典版本VC6.0在WIN7上的兼容性不是很好,所以改装了VS2010,发现上面集成了SQL2008的一些东西。要想学习数据库,当然你可以下载一个SQL2008完整安装,在运用下面讲的连接方...

安装VS2010 SP1后SQL Server 2008 r2智能感知功能(IntelliSense)失效!

记得有人提到过,在安装Vs2010 Sp1后,SQL server 2008 r2的智能感知功能失效。今天试了一下,发现确实如此。...

VS2010 MFC + SQL Server 2008 ADO编程

  • 2017年08月12日 11:34
  • 2.7MB
  • 下载

VS2010链接SQLsever2008数据库时出现[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒

楼主最近再做一个项目,然后就出现了标题所示的问题,下面介绍一下解决办法      当出现上述问题时,相信很多朋友已经猜到了,问题就出在VS2010无法打开SQLSEVER中的数据库导致的。解决步骤...

使用 VS2010 在 SQL 2008 R2 上进行应用开发

数据应用层程序(Data-Tier Application Component, DAC)是SQL Sever 2008 R2的一大功能亮点,结合使用Visual Studio 2010,可以帮助开发...

vs2008和SQL Server使用ADO连接方法

学了几天ADO方法,今天也写一写教程~ 时间2012年10月20日 环境: 操作系统:win7- 64bit 编译器:VS2008 数据库:SQL Server 2000 说明: SQ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server r2 2008与VS2010相连接(ADO方式)
举报原因:
原因补充:

(最多只允许输入30个字)