日期:2014-05-16  浏览次数:20536 次

为毛总是出错误,vs2010链接sql2008R2出错。。。求大神。。。
第一次接触数据库,电脑上vs2010和sql2008R2,vs安得早了,sql2008R2最近刚安上,今天试了下ado连接数据库,老是出错,求指点,下面代码,只有一点点横简单的,求会的看看,真的刚接触,啥都不懂。。。明白看代码要有耐心,我给最高分

#include <iostream>
#include <windows.h>
//#include <cstring>
using namespace std;
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

int main()
{
char  conStr[]="provider=Microsoft OLE DB Provider for SQL Server;sever=ASUS-PC\SQLEXPRESS;database=vstest;User ID=TxgAd;PASSWORD=1234567;";
_ConnectionPtr pCon;
_RecordsetPtr  pSet;
CoInitialize(NULL);
pCon.CreateInstance("ADODB.Connection");
pCon->Open((_bstr_t)conStr,"","",NULL);
pSet.CreateInstance("MySet");
pSet->Open("select * from 学生",(IDispatch*)pCon,adOpenUnspecified,adLockUnspecified,adCmdTable);
_variant_t stuNum,stuName,stuClass;
while(!pSet->adoEOF)
{
stuNum=pSet->GetCollect(0);
cout<<stuNum.intVal;
break;
}
pSet->Close();
pSet=NULL;
pCon->Close();
pCon=NULL;
return 0;
}
大概查了下是连接那一行出了错

我在自己电脑上能连接上啊,上面的provider都是从电脑上找到的,网上的连接字都试过了,都不行
难过啊。。。。
------解决方案--------------------
sever=ASUS-PC\SQLEXPRESS
把SQLEXPRESS改成sql2008R2其它的服务名试一下,我猜你是连接错服务了
------解决方案--------------------
从错误提示来看,看不出来是连接字符哪块出错吧。
1、首先保证你用你的账号和密码 User ID=TxgAd;PASSWORD=1234567 能登陆到sql server
2、连接字符串参考
ADO连接数据库,一个比较头疼的问题在于对连接字符串的正确写法,看了很多书,最后,终于在VB环境里,通过创建ADO控件的连接,然后读取连接字符串(连接字符串与编程语言无关),终于得出下面两条字符串模型。
身份验证模式为:"sql server和windows"
Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名
身份验证模式为:"仅windows"
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=SQL服务器名
3、给个建议,尝试使用下ado.net方式