wex5怎么连接数据库

wex5怎么连接数据库,第1张

//初始化数据库连接

::CoInitialize(NULL)

连接数据库

[cpp] view plaincopyprint?

BOOL CLogin::ConnectDB(void)

{

HRESULT hr = NULL

try

{

hr = m_pConnection.CreateInstance("ADODB.Connection")///创建 Connection 对象

if(SUCCEEDED(hr))

{

//登录数据库并连接数据库DBCourse

//这里的server不能写成127.0.0.1否则会出现未指定的错误,应该写成Sql server登录界面的服务器名称

m_pConnection->ConnectionString = "driver={SQL Server}server=LOGO-PC\\LOGOuid=DBCoursepwd=DBCourse"

m_pConnection->Open("","","",adConnectUnspecified)

m_pConnection->DefaultDatabase = "DBCourse"

}

else

{

AfxMessageBox(TEXT("创建 Connection 对象失败"))///显示错误信息

return FALSE

}

}

catch(_com_error e)///捕捉异常

{

CString errormessage

errormessage.Format( TEXT("连接数据库失败 !\r\n 错误信息 :%s(%ld)"),e.ErrorMessage(),e.Error() )

AfxMessageBox(errormessage)///显示错误信息

return FALSE

}

return TRUE

}

*** 作数据库

[cpp] view plaincopyprint?

void CLogin::OnBnClickedButton1()

{

if( m_user.GetWindowTextLength()<=0 || m_password.GetWindowTextLength()<=0 )

{

MessageBox(TEXT("请输入用户名或密码!"), TEXT("错误:用户名或密码为空"), MB_OK | MB_ICONWARNING )

return

}

if( FALSE==this->ConnectDB() ) return

TCHAR szUserName[20]

TCHAR szPassword[50]

TCHAR szSql[MAX_PATH]

//获取用户输入的用户名和密码

m_user.GetWindowText( szUserName, 20 )

m_password.GetWindowText( szPassword, 50 )

//创建_RecordsetPtr用来执行数据库 *** 作

_RecordsetPtr pRecordset

pRecordset.CreateInstance("ADODB.Recordset")

_tcscpy_s( szSql, TEXT("select * from usr where uname='") )

_tcscat_s( szSql, szUserName )

_tcscat_s( szSql, TEXT("' and passwd='") )

_tcscat_s( szSql, szPassword )

_tcscat_s( szSql, TEXT("'") )

pRecordset->Open(_variant_t(szSql), _variant_t ((IDispatch*) m_pConnection,true), adOpenStatic, adLockOptimistic, adCmdText)

int nResult = DLG_RESULT_OK

if( pRecordset->RecordCount>0 )

{

//MessageBox(TEXT("登录成功!"), szUserName, MB_OK | MB_ICONINFORMATION )

}

else

{

MessageBox(TEXT("用户名或密码错误!"), TEXT("登录失败!"), MB_OK | MB_ICONINFORMATION )

nResult = DLG_RESULT_ERROR

}

pRecordset->Close()

if( DLG_RESULT_OK==nResult ) Exit( DLG_RESULT_OK )

}

哦忘了一件事了,还需要在stafx.h文件中引入dll文件的,如此

[cpp] view plaincopyprint?

//添加dll库

#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

//添加dll库

//添加宏定义

#define DLG_RESULT_OK 1

#define DLG_RESULT_ERROR 2

#define DLG_RESULT_CANCEL 3

//添加宏定义

Query query = this.getSession().createQuery("SELECT new list(tf.id) FROM TFood tf WHERE id=?")query.setParameter(1, 1L)// List list=query.list()再判断 list

数据库连接失败的原因及解决方法

原因一:登录账号、密码、服务器名称、数据库名称登录错误导致不能连接,这个比较常见,仔细检查好所填信息是否正确,填写正确一般就可以解决。

解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题。数据库如果是安装在本机,服务器名可以用“.”或“(local)”来代替 ;如果是安装在局域网的其它计算机上,可以用IP地址作为服务器名。

原因二:如果没能正确安装SQL服务器,也会导致数据库连接不上;安装好数据库后,如果SQL服务管理器没有启动,则要去服务那里开启。

解决方法:如果是SQL数据库未能能成功安装,再次重新安装时,可能会无法安装,提示是存在一个未完成的安装挂起。解决就方法是:打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到并删除PendingFileRenameOperations项目即可。

如果是更改了Windows的用户名或者密码,会导致SQL服务管理器不能启动,解决办法是去控制版面的服务那里修改启动。具体是:点击开始-->设置-->控制面板-->管理工具-->服务-->找到MS SQL SERVER服务-->在上面右键-->属性-->登陆-->修改启动服务的帐户和密码。

原因三:因权限问题导致数据库不能连接,解决方法是检测计算机的安全保护限制、SQL Server安全设置、 *** 作系统的安全限。

解决方法:可以先暂时关闭防火墙或者杀毒软件,看是否是这些软件的安全设置所导致。

SQL Server安全设置:打开企业管理器-->展开SQ L Server组-->右击服务器名-->点击属性-->在SQL Server属性-->安全性中,把“身份验证”选择为“在SQL Server和Windows”;

如果SQL服务器采用的是Windows XP系统,当工作站电脑出现不能连接数据库的情况时,可以在服务器和工作站各建立一个相同的WINDOWS用户账号和密码

原因四:引起原因:网络连接存在故障

解决方法:检修网络是否存在故障。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9656943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存