void DBInsert(HWND hwnd) { SQLHENV henv = NULL; SQLHDBC hdbc = NULL; SQLHSTMT hstmt = NULL; SQLRETURN result; SQLCHAR ConnStrIn[MAXBUFLEN] = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=1234;DATABASE=test;CharSet=gbk;"; SQLCHAR ConnStrOut[MAXBUFLEN]; //分配环境句柄 result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,&henv); //设置管理环境属性 result = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3, 0); //分配连接句柄 result = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); //设置连接属性 result = SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT,(void*)LOGIN_TIMEOUT, 0); //连接数据库 result = SQLDriverConnect(hdbc,NULL, ConnStrIn,SQL_NTS, ConnStrOut,MAXBUFLEN, (SQLSMALLINT*)0,SQL_DRIVER_NOPROMPT); if(SQL_ERROR==result) { ShowDBConnError(hwnd,hdbc); return; } //初始化语句句柄 result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); //SQL_NTS telling the function the previous parameter is Null-Terminated String, //please alculate the string length for me //insert into `test`.`t_person`(FAge,FName) values(12,'小明') TCHAR UserName[256]; TCHAR PassWord[256]; GetDlgItemText(hwnd,IDC_USERNAME,UserName,sizeof(UserName)); GetDlgItemText(hwnd,IDC_PASSWORD,PassWord,sizeof(PassWord)); TCHAR strSQL[256]; wsprintf(strSQL,"insert into T_users(FUserName,FPassWord) values('%s','%s')",UserName,PassWord); result = SQLPrepare(hstmt,(SQLCHAR*)strSQL,SQL_NTS); CHECKDBSTMTERROR(hwnd,result,hstmt); result =SQLExecute(hstmt); CHECKDBSTMTERROR(hwnd,result,hstmt); SQLFreeStmt(hstmt,SQL_CLOSE); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC,hdbc); SQLFreeHandle(SQL_HANDLE_ENV,henv); MessageBox(hwnd,TEXT("插入成功"),TEXT("标题"),MB_OK); } void DBLogin(HWND hwnd) { SQLHENV henv = NULL; SQLHDBC hdbc = NULL; SQLHSTMT hstmt = NULL; SQLRETURN result; SQLCHAR ConnStrIn[MAXBUFLEN] = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=1234;DATABASE=test;CharSet=gbk;"; SQLCHAR ConnStrOut[MAXBUFLEN]; //分配环境句柄 result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,&henv); //设置管理环境属性 result = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3, 0); //分配连接句柄 result = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); //设置连接属性 result = SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT,(void*)LOGIN_TIMEOUT, 0); //连接数据库 result = SQLDriverConnect(hdbc,NULL, ConnStrIn,SQL_NTS, ConnStrOut,MAXBUFLEN, (SQLSMALLINT*)0,SQL_DRIVER_NOPROMPT); if(SQL_ERROR==result) { ShowDBConnError(hwnd,hdbc); return; } //初始化语句句柄 result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); TCHAR UserName[256]; TCHAR PassWord[256]; GetDlgItemText(hwnd,IDC_USERNAME,UserName,sizeof(UserName)); GetDlgItemText(hwnd,IDC_PASSWORD,PassWord,sizeof(PassWord)); TCHAR strSQL[256]; wsprintf(strSQL,"select FUserName,FPassWord from T_users where FUserName='%s'",UserName); //SQL_NTS telling the function the previous parameter is Null-Terminated String, //please alculate the string length for me result = SQLPrepare(hstmt,(SQLCHAR*)strSQL,SQL_NTS); CHECKDBSTMTERROR(hwnd,result,hstmt); result =SQLExecute(hstmt); CHECKDBSTMTERROR(hwnd,result,hstmt); /* SQLINTEGER cbsatid=SQL_NTS; while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) { SQLCHAR name[20]; SQLGetData(hstmt,1,SQL_C_CHAR,name,20,&cbsatid); MessageBox(hwnd,(char*)name,"showname",MB_OK); } //*/ if (SQLFetch(hstmt)==SQL_NO_DATA_FOUND) { MessageBox(hwnd,TEXT("用户不存在!"),TEXT("标题"),MB_OK); } else { SQLINTEGER cbsatid=SQL_NTS; //while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) { SQLCHAR name[20]; SQLGetData(hstmt,1,SQL_C_CHAR,name,20,&cbsatid); //MessageBox(hwnd,(char*)name,"showname",MB_OK); //SQLINTEGER i; char passwrd[256]; SQLGetData(hstmt,2,SQL_C_CHAR,passwrd,sizeof(passwrd),&cbsatid); //MessageBox(hwnd,itoa(i,passwrd,10),"passwrd",MB_OK); if (0==lstrcmp(passwrd,PassWord)) { MessageBox(hwnd,"登陆成功","!",MB_OK); } else { MessageBox(hwnd,"登陆失败","!",MB_OK); } } } SQLFreeStmt(hstmt,SQL_CLOSE); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC,hdbc); SQLFreeHandle(SQL_HANDLE_ENV,henv); //MessageBox(hwnd,TEXT("登陆成功"),TEXT("标题"),MB_OK); }