第一,你的sql2000没有打sp3或以上的补丁;
第二,你的sql没有设置账号登陆,可以在(local)(windows
nt)上右键-属性-安全性-选上(sql
server和windows)-确定
问题应该就可以解决了……
连接打开数据库和查询数据库都要加异常捕获代码,因为数据库在连接的时候可能连接不上,就不能进行后面的查询工作,否则就会报错,如果查询一个不存在的表都会出问题,所以要加异常捕获,避免出现错误时程序非法 *** 作,增加代码容错机制。修改代码见下,运行时可以看看代码提示什么错误,出错原因主要可能是数据库连接不上或查询错误表。
if(!SUCCEEDED(CoInitialize(NULL)))
MessageBox("FAILED")
_ConnectionPtr pConn(__uuidof(Connection)) _RecordsetPtr pRst(__uuidof(Recordset))
pConn->ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0Data Source=Test.accdbJet OLEDB:Database Password=123Persist Security Info=False"
try{
pConn->Open("","","",-1)
}
catch (_com_error e)
{
AfxMessageBox(e.Description())
return
}
try{
pRst = pConn->Execute("select * from tb_UserInfo", NULL, adCmdText)
while(!pRst->adoEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("username"))
pRst->MoveNext()
}
}
catch (_com_error e)
{
AfxMessageBox(e.Description())
return
}
pRst->Close()
pConn->Close()
pRst.Release()
pConn.Release()
CoUninitialize()
导入命名空间using System.Data,Sqlclientstring ConnStr="server=.database=NewsDatauid=sapwd=123"string SQL_STRING="select * from news"database连接的是数据库名称;uid是用户名;pwd是登陆密码;1,创建一个连接实例SqlConnection conn = new SqlConnection(ConnStr);2.打开连接conn.open()3。创建执行命令实例SqlCommand cmd=new SqlCommand(SQL_STRING,conn)4,创建只进读取数据对象SqlDataReader sdr = cmd.ExecuteReader()5,读取数据if (sdr.Read())
{
t_colname.Text = sdr["new_Name"].ToString()
t_colwords.Text = sdr["new_Des"].ToString()
}6.关闭连接
sdr.Close()
conn.Close()
这是一个实例,希望通过这个你可以了解一下 ,在这里涉及到了ADO.NET的3个对象
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)