VC9 (vs2008) 开发MFC程序
使用SQL SERVER作为数据库在VC的以前版本中使用过ADO,通过IMPORT引入的ADOADO.NET是ADO的升级,不知道现在如何在VC工程中引入ADO.NET?此外可以在VC9中直接使用NAMESPACE吗?如 using namespace System::Data::SqlClient 

解决方案 »

  1.   

    为什么 使用 using namespace System::Data::SqlClient;编译的时候提示 没有此命名空间呢???
      

  2.   

    没用过ado.net..不过你用普通的ado应该也可以编译...参考:
    http://www.vckbase.com/document/viewdoc/?id=1215 
    http://www.vckbase.com/document/viewdoc/?id=610
      

  3.   

    _ConnectionPtr pConn;
    if(FAILED(pConn.CreateInstance("ADODB.Connection")))
    {
    AfxMessageBox(_T("连接CreateInstance错误"));
    return;
    }
    CString connstr = _T("initial catalog=mydb;data source=localhost;integrated security=true");
    CString mysql = _T("insert into TextInfo(TextTitle,TextContent) values(N'");
    mysql += text_title;
    mysql += "',N'";
    mysql += text_content;
    mysql += "')";_variant_t variant_connstr(connstr);
    _bstr_t bstr_connstr(variant_connstr);if(FAILED(pConn->Open(bstr_connstr,"","",-1)))    //运行到此处就异常,不知道为什么???
    {
    AfxMessageBox(_T("数据库连接打开错误"));
    return;
    }pConn->Close();
      

  4.   

    用如下代码把你的代码包起来
    try 

        //你的代码 

    catch(_com_error &e) 

        AfxMessageBox(e.Description()); 

    看看能否捕获异常??另外,你在if(FAILED(pConn.CreateInstance("ADODB.Connection"))) 之前执行了CoInitialize(NULL);的吗?
      

  5.   

    用如下代码把你的代码包起来
    try 

        //你的代码 

    catch(_com_error &e) 

        AfxMessageBox(e.Description()); 

    看看能否捕获异常??另外,你在if(FAILED(pConn.CreateInstance("ADODB.Connection"))) 之前执行了CoInitialize(NULL);的吗?
      

  6.   

    _ConnectionPtr pConnection;
    HRESULT hr = pConnection.CreateInstance("ADODB.Connection");LPCSTR strconnect = "provider=sqloledb;initial catalog=Semantic;data source=(local);Persist Security Info=False;integrated security=true;uid="";pwd=""";
    if(SUCCEEDED(hr))
    {
    try
    {
    pConnection->Open(strconnect,"","",NULL);
    }
    catch(_com_error e)
    {
    AfxMessageBox(e.Description());
    }
    }捕捉到的错误信息是:
    多步OLE DB操作产生错误。如果有可能,请检查每个OLE DB状态值。没有工作被完成。数据连接都打不开,很郁闷~~~
      

  7.   

    你的sql server是用的什么登录方式?? 把sqloledb改成sqloledb.1试试
      

  8.   

    连接本地SQL SERVER数据库,并且使用WINDOWS验证方式,如何写这样的连接串呢?
      

  9.   


    目前因为数据库在同一个机器上 , 所以就直接使用WINDOWS验证方式修改为sqloledb.1也是同样的错误
      

  10.   

    要这样写:
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Semantic;Data Source=(local);
      

  11.   


    按照这个修改出现错误:
    [dbnetlib][connection open]sql server不存在或拒绝访问尝试将local改为127.0.0.1结果错误变为:
    [DBNETLIB][ConnectionOpen   (PreLoginHandshake()).]一般性网络错误。请检查网络文档。
    太郁闷了~~~
      

  12.   

    按下面的方法试试:
    1.在任意文件夹新建一个文本文件,把后缀名从txt改成udl 
    2.双击打开这个文件,按提供生成连接字符串 
    3.用记事本打开这个文件,把其中的连接字符串用来连接数据库看看能不能成功