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

//添加宏定义

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!<a href="链接的页面.jsp?id=<%=rs.getInt(1)%>"><%=rs.getString("页面要显示的字段名称")%></a>,非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!

1.建立一个web项目

2.把数据库驱动复制到lib目录下。数据库驱动有:mysql,sqlserver,oracle等 是什么样类型的数据导入相应驱动。

3.编写一个连接数据库的工具类,获取一个连接。下面以mysql数据库为例。

核心代码:

public class DataUtils {

/**

* 从数据中获取一个连接

* @return

*/

public static Connection getConn(){

Connection conn = null

try {

Class.forName("com.mysql.jdbc.Driver").newInstance()

//表为test,用户名root,密码admin。

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "admin")

} catch (Exception e) {

e.printStackTrace()

}

return conn

}

}

4.获取到与相应数据库的连接后,就可以做增删改查 *** 作了。记得做完 *** 作后,关闭连接,释放资源。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存