我在vc 6.0中想自己写个ado连接数据库的类,但是发现不能给类中的成员变量赋值。
这是我的代码
#if !defined(AFX_ADO_CONNECT_H__455AB6F4_D028_4724_99AE_E1113165A077__INCLUDED_)//头文件
#define AFX_ADO_CONNECT_H__455AB6F4_D028_4724_99AE_E1113165A077__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000class Ado_Connect  
{
public:
void Connect(); _RecordsetPtr pRst;
_ConnectionPtr pConn;
CString DatabaseName;
CString Password;
CString UserId;
CString SqlString;
Ado_Connect(CString DatabaseName,CString UserId,CString Password,CString SqlString);
virtual ~Ado_Connect();};#endif // !defined(AFX_ADO_CONNECT_H__455AB6F4_D028_4724_99AE_E1113165A077__INCLUDED_)Ado_Connect::Ado_Connect(CString DatabaseName,CString UserId,CString Password,CString SqlString)//构造函数(通过构造函数给类中变量赋值)
{
DatabaseName=DatabaseName;
UserId=UserId;
Password=Password;
SqlString=SqlString;

}void Ado_Connect::Connect()//类中的connect函数。函数还没有写完
{
MessageBox(NULL,DatabaseName,NULL,MB_OK);
CoInitialize(NULL);//初始化com对象。(ADO是oled的客户程序,而oled是基于com对象的。)
pConn.CreateInstance(__uuidof(Connection));
pRst.CreateInstance(__uuidof(Recordset));//分别产生connetct和recordset智能指针。

    CString ConnectionStr="Provider=SQLOLEDB.1;Persist Security Info=False;User ID="+UserId+";PassWord="+Password+";Initial Catalog="+DatabaseName;
//pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID="+UserId+";PassWord="+Password+";Initial Catalog="+DatabaseName;
pConn->ConnectionString=(_bstr_t)ConnectionStr;
MessageBox(NULL,ConnectionStr,NULL,MB_OK);
pConn->Open("","","",adConnectUnspecified);//adConnectUnspecified这个参数表示同步连接的意思。 pRst=pConn->Execute("select * from City",NULL,adCmdText);}在点击按键的响应函数中调用
CString DatabaseName="OnlineAuction";
CString UserId="sa";
CString Password="sa";
CString SqlString="select * from City";
Ado_Connect ado(DatabaseName,UserId,Password,SqlString);
//MessageBox(ado.DatabaseName);
ado.Connect();为什么类中的DatabaseName UserId Password SqlString 变量都为空??