
#include <windows.h>
#include "stdio.h"
#include<sql.h>
#include<sqlext.h>
#include<sqltypes.h>
#include<odbcss.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
SQLHENV m_hEnv
SQLHDBC m_hDbc
SQLRETURN m_sr
m_sr=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&m_hEnv)
if(m_sr!=SQL_SUCCESS)
{ MessageBox(NULL,"分配环境句柄失败","错误",MB_OK|MB_ICONEXCLAMATION)
return FALSE
}
m_sr=SQLSetEnvAttr(m_hEnv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0)
if(m_sr!=SQL_SUCCESS)
{ MessageBox(NULL,"设置环境属性失败","错误",MB_OK|MB_ICONEXCLAMATION)
return FALSE
}
m_sr=SQLAllocHandle(SQL_HANDLE_DBC,m_hEnv,&m_hDbc)
if(m_sr!=SQL_SUCCESS)
{ MessageBox(NULL,"分配连接句柄失败","错误",MB_OK|MB_ICONEXCLAMATION)
return FALSE
}
m_sr=SQLSetConnectAttr(m_hDbc,SQL_ATTR_LOGIN_TIMEOUT,(void*)5,0)
if(m_sr!=SQL_SUCCESS)
{ MessageBox(NULL,"设置连接属性失败","错误",MB_OK|MB_ICONEXCLAMATION)
return FALSE
}
m_sr=SQLConnect(m_hDbc,(SQLCHAR*)"LocalServer",SQL_NTS,(SQLCHAR*) "sa",SQL_NTS,(SQLCHAR*) "123456",SQL_NTS)
if(SQL_SUCCEEDED(m_sr))
{ MessageBox(NULL,"连接数据源失败","错误",MB_OK|MB_ICONEXCLAMATION)
return FALSE
}
return 0
}
有多种方法,具体还有看你连接什么数据库,以及采用什么连接方式我经常用的方法是用DAO连接Access
具体方法是
1、先添加DAO的引用
2、定义全局变量
public DAO.Database myDb
DAO.Workspace myWs
public DAO.Recordset myRec
DAO.DBEngine de = new DAO.DBEngineClass()
3、自己定义一个打开数据库的函数,以便自己调用
public void OpenDb(String sql)
{
string dbStr
dbStr = "c:\\钟山亮.mdb"//数据库的路径
myWs = de.Workspaces[0]
myDb = myWs.OpenDatabase(dbStr, null, null, null)
myRec = myDb.OpenRecordset(sql, DAO.RecordsetTypeEnum.dbOpenDynaset,
DAO.RecordsetOptionEnum.dbDenyWrite,
DAO.LockTypeEnum.dbOptimistic)
}
4、打开数据库
string sql="select * from myTb"//书写你自己的SQL语句
OpenDb(sql)
while (!myRec.EOF)//遍历记录{
myRec.MoveNext()
}
myRec.Close()
myDb.Close()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)