VC++编程访问sql server数据库 高手进来哦

这段程序是通过MFC对话框上的一个按钮来想数据表写一条数据的, 我想在通过另外一个按钮来读取数据并显示在一个列表控件上面;该怎么写啊 高手来帮帮我 弄出来了至少追加100分 谢谢啦
void CADOTestDlg::OnButton1()
{
UpdateData(TRUE);

_RecordsetPtr pPtr;
if (FAILED(pPtr.CreateInstance("ADODB.Recordset")))
{
AfxMessageBox("Create Instance failed!");
return ;
}
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+=m_nb1;//"se221"
strSRC+=";Database=";
strSRC+=m_nb2;//"MYDB"
strSRC+=";UID=";
strSRC+=m_nb3;//"sa"
strSRC+=";PWD=";
strSRC+=m_nb4;//"123456";
CString strSQL;
strSQL="Insert into T_mytb(time,terminalID,objectID,positionX,positionY) values(";
strSQL+=m_ntime;
strSQL+=",";
strSQL+=m_nterminal;
strSQL+=",";
strSQL+=m_nobject;
strSQL+=",";
strSQL+=m_nX;
strSQL+=",";
strSQL+=m_nY;
strSQL+=")";
//,,,positionX,positionY) values(m_ntime,m_nterminal,m_nobject,m_nX,m_nY)";
//"select ID,PassWord,Name,Sex,Age,Department,Rank from T_User";
_variant_t varSRC(strSRC);
_variant_t varSQL(strSQL);
if(FAILED(pPtr->Open(varSQL,varSRC,adOpenStatic,adLockOptimistic,adCmdText)))
{
AfxMessageBox("Open table failed!");
pPtr.Release();
return ;
}

}
我在sql server里新建了一个数据库MYDB, T_mytb是在MYDB里面建的一个表, 里面有5列,time,terminalID,objectID,positionX,positionY

_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordSet;

m_pConnection.CreateInstance("ADODB.Connection");
if (m_pConnection == NULL)
{
AfxMessageBox("Connection 对象创建失败! 请确认是否初始化了COM环境\r\n");
return ;
}
try{

m_pConnection->ConnectionTimeout = 10;
_bstr_t strCon = "Provider=SQLOLEDB.1; Driver={SQL Server}; Server=MICROSOF-4DAE95; Database=MYDB; uid=username; pwd=userpassword;";
m_pConnection->Open(strCon, "", "", adModeUnknown);
MessageBox("已经连接上数据库");
//MICROSOF-4DAE95 是你所启动的服务器名字;username 是你登陆服务器的用户名;userpassword 是登陆密码

m_pRecordSet.CreateInstance(__uuidof(Recordset));//"ADODB.Recordset"
m_pRecordSet->Open("SELECT * FROM T_mytb", // 查询DemoTable表中所有字段 m_pConnection.GetInterfacePtr(),// 获取库接库的IDispatch指针
adOpenDynamic,adLockOptimistic,adCmdText);

if(!m_pRecordSet->BOF)// _RecordsetPtr m_pRecordSet;
m_pRecordSet->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
}

// 读入库中各字段并加入列表框中
while(!m_pRecordSet->adoEOF)
{
var = m_pRecordSet->GetCollect("time");
if(var.vt != VT_NULL)
strID = (LPCSTR)_bstr_t(var);
var = m_pRecordSet->GetCollect("terminalID");
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);

var = m_pRecordSet->GetCollect("objectID");
if(var.vt != VT_NULL)
strAge = (LPCSTR)_bstr_t(var);

var = m_pRecordSet->GetCollect("positionX");
if(var.vt != VT_NULL)
strdate = (LPCSTR)_bstr_t(var);

//m_AccessList列表关联的变量

int n = m_AccessList.GetItemCount();
m_AccessList.InsertItem(n,strID); m_AccessList.SetItemText(n,1,strName);
m_AccessList.SetItemText(n,2,strAge);
m_AccessList.SetItemText(n,3,strdate);

m_pRecordSet->MoveNext();
}

//我试过的没有问题的,记得^-^
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜