vs2010mfc制作了一个登录窗口,数据库使用的是MySQL,怎样写才能连接到数据库进行登录?

图片说明
账号编辑框添加变量为:CEdit m_ID

密码编辑框添加变量为:CEdit m_password

登录按钮下的事件函数,可以连接到mysql的数据库,可以实行插入删除操作。

现在服务器数据库里面有一个名为:DATASOURCE的数据库,里面有一张表为:information,表里面有多个属性,其中ID为int型,Password为varchar。

不知道怎样写才能与数据库中的ID和密码进行匹配。。在网上找了好久都没找到说怎样写的,只找到一个类似的C#程序。。。新手,为了这我都泪目了,到处查都查不到请各位大神指点。。(如果能写出范例是再好不过。。)在这儿先谢谢各位了!

1

7个回答

     try  
    {  
        CDatabase db;  
        if( db.Open("你的数据库"))  
        {   UpdateData(TRUE);  
          CString sql;  
          sql.Format("select * from 表 where 用户名='%s' and 密码='%s'", m_用户名文本框对应的变量 , m_密码);  

            CTestDBSet *pCTestDBSet = new CTestDBSet();  
            pCTestDBSet->Open(CRecordset::snapshot , sql);  
            if ( ! pCTestDBSet->IsEOF())  
            {  
                登录成功
            }
            db.Close();  

        }  
    }  
    catch (CDBException* e)  
    {  
        AfxMessageBox( e->m_strError);  
        e->Delete();  
    }  
3

我也是搞C#的,但是这个东西原理都差不多吧。点击登录的时候,将两个编辑框里面的值取出来,然后作为查询语句的条件,如果有返回值,说明数据库里存在该用户并且密码正确,也就是登录成功,若没有返回值,就是登录失败!我尽量给你解释了,自己也想想吧。

0
lucana_l
lucana_l 额。。然而我用的并不是C#。。我本来想的是查询,但是不知道MFC ODBC 查询 返回结果的语句是怎么写。。
接近 4 年之前 回复

大致代码如下,可以根据具体情况修改:
#include
#include
#include
#include // mysql提供的接口中用到socket,所以需要保护winsocke.h
#include //注意要包含这个头文件,在你安装mysql的目录下应该有的,考到工程里,下面同理
#pragma comment(lib,"libmysql")

#define HOST "localhost" // 数据库主机
#define USERNAME "root" // 数据库用户名
#define PASSWORD "root123" // 数据库用户密码
#define DATABASE "DATASOURCE" // 数据库名

using std::string;

// 验证登陆
bool identify(string username, string password) ;
int main(int argc, char *argv[])
{
identify("zhangsan", "123456");

getchar();
return 0; 

}

bool identify(string username, string password)
{
string strsql = string("select * from information where ID = ") + username + string(" and password = ") + password;

MYSQL my_connection;    // 数据库连接 
MYSQL_RES *pRes;        // 查询结果集指针 
MYSQL_FIELD *field;     // 字段结构指针 
MYSQL_ROW result_row;   // 按行返回的查询信息

int retVal;             // 返回值 
int row, column;        // 查询返回的行数和列数 
int i, j;   

// step 1, 初始化connect
mysql_init(&my_connection); 
// step 2, 连接数据库 返回不为空证明连接成功
if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) 
{
    printf("connect success!\n"); 
    // step 3, 设置查询编码(用户名可能为中文,股设置为utf8)
    mysql_query(&my_connection, "set names utf8"); 
    // step 4, 执行sql
    retVal = mysql_query(&my_connection, strsql.c_str()); 
    if (retVal)     // 执行失败
    { 
        printf("query sql failed !\n"); 
        mysql_close(&my_connection);        // 关闭连接 
    } 
    else            // 执行成功
    {   
        // step 5, 获取并输出执行结果
        pRes = mysql_store_result(&my_connection); 
        if (pRes) 
        { 
            // 验证登陆的话,如果查询结果不为空,则表示验证成功
            return true;
            // 用于输出结果
            //column = mysql_num_fields(pRes); 
            //row = mysql_num_rows(pRes) + 1; 
            //printf("row num: %lu\n", row); 
            //// step 6, 循环输出字段名、字段类型
            //for (i = 0; field = mysql_fetch_field(pRes); i++) 
            //  printf("%s(%d)\t", field->name,field->type); 
            //printf("\n"); 
            //// step 7, 循环输出字段值
            //for (i = 1; i < row; i++) { 
            //  result_row = mysql_fetch_row(pRes); 
            //  for (j = 0; j < column; j++) 
            //      printf("%s\t", result_row[j]); 
            //  printf("\n"); 
            //} 
        } 
        mysql_close(&my_connection);        // 关闭连接 
    } 
} 

return false;

}


0

我擦,头文件没显示,上次个图片看看吧

0
0

#include string
#include stdlib.h
#include stdio.h
#include WinSock2.h // mysql提供的接口中用到socket,所以需要保护winsocke.h
#include mysql.h //注意要包含这个头文件,在你安装mysql的目录下应该有的,考到工程里,下面同理
#pragma comment(lib,"libmysql")

#define HOST "localhost" // 数据库主机
#define USERNAME "root" // 数据库用户名
#define PASSWORD "root123" // 数据库用户密码
#define DATABASE "DATASOURCE" // 数据库名

using std::string;

// 验证登陆
bool identify(string username, string password) ;

0

http://blog.csdn.net/lalor/article/details/6908382
MFC连接mysql数据库(十分钟搞定)

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
登录窗口如何连接到数据库access
登录人的账号和密码都保存到数据库,如何让登录窗口连接到数据库?
数据库cmd窗口登录
mysql -uroot -p123 -P3306 -h127.0.0.1   -uroot::root数据库登录用户名   -p123:数据库密码123   -P3306::3306数据库的端口号   -h127.0.0.1:数据库的主机地址...
登录数据库窗口设计~
Module1.vb:rnImports System.Windows.FormsrnImports System.Data.SqlClientrnModule Module1rn Public cnStr As String '= "data source=(local);initial catalog=GHSBGL;integrated security=SSPI;persist security info=False;user id=sa"rn Public cn As New SqlConnection(cnStr)rn Public sql As StringrnEnd ModulernrnForm1.vb:rnImports System.Data.SqlClientrnImports SystemrnrnPublic Class Form1rn Inherits System.Windows.Forms.Formrnrn#Region " Windows 窗体设计器生成的代码 "rn...rn #End Regionrnrn Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickrn cnStr = "data source=(local);initial catalog=GHSBGL;integrated security=SSPI;persist security info=False;user id=sa"rn Tryrn cn.Open()rn MsgBox("GOOD")rn Catch err As Exceptionrn MsgBox("连接失败,请重试")rn cn.Dispose()rn Exit Subrn Finallyrn End Tryrn End SubrnrnEnd Classrnrn每次都连不上,cnStr字段值放在Module1.vb可以通,不是全局的吗?rn应该是极菜的问题。rn
求教:数据库登录窗口
我在程序中设置了一个数据库登录入窗口,输入用户名,密码即可.rn 现在有一个问题:当用户名,和密码输入错误时,并没有马上弹出我设置的消息提示框messagebox 而是先自动弹出SQL Server的消息框:rnrn连接失败:rnSQLState:'28000'rnSQL Server 错误: 18456rn[Microsoft][ODBC SQL Server Driver][SQL Server]用户'sa'登录失败.rnrn接着弹出SQL Server的登录窗口,选取消后才弹出我定义的消息窗口.rnrn请问:怎么屏蔽SQL server的东西。
数据库登录窗口
数据库控件Db,已经把其LoginPrompt设为False,为何程序执行的时候还出现Database login 的窗口,要我输入用户名与密码?是不是还有别的什么地方要进行设置?
MySQL登录数据库
登录数据库之前,先启动MySQLnet start mysql 登录数据库分为以下情况 1.登录root用户 mysql -h localhost -u root -p然后提示输入密码输入root用户密码,即可登录。2.假设连载到远程主机上的MySQ,主机IP为 110.110.110 ,用户名为root ,密码为123 mysql -h 110.110.110 -u root -p1233.登...
JDBC连数据库登录部分
String userName="root";        String userPwd="123";         String dbName="login";     String url1="jdbc:mysql://localhost:3306/"+dbName;     String url2="?user="+userName+"&password="+userPwd;
使用 c 语言,连接到 mysql 数据库
C语言连接数据库对于新手来说最大的障碍是如何配置库文件以及如何配置编译器,下面我详细描述一下我是如何配置的。 1.首先下载完整的MYSQL软件,以及下载MinGW软件 2.将libmysql.dll文件复制到C:\Windows\System32文件夹下 3.配置编译器$(FileName) -LD:\MYSQL\lib -llibmysql -lmysqlclient -ID:\MYSQL\include -o $(FileNameNoExt).exe
使用Connection连接到数据库
1.  Connection对象的常用属性 ConnectionString属性:用来获取或设置打开SQL Server数据库的连接字符串 ConnectionTimeout属性:该属性用来获取在尝试建立连接时所等待的最长时间 2.  Connection对象的构造函数
使用RMAN连接到数据库
1.RMAN使用时需要考虑的问题 资源:共享内存,更多的进程 权限:授予用户sysdba权限,OS访问设备的权限 远程操作 设置密码文件 确保密码文件被备份 全球化环境变量设置 在RMAN命令行格式化时间参数 2.连接类型 目标数据库 恢复目录数据库,缺省情况下RMAN运行在非恢复目录数据库 辅助数据库 Standby database Duplicate database TSPITR ins...
使用数据库登录
登录按钮属性 退出按钮属性    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using S...
使用数据库的登录源码
后台数据库为Access,前台为VB.NET,对于新手比较有用的登录源码
如何去除数据库登录窗口?
已经删除了数据源中关于用户ID与PASS部分。rn但连接数据库的语句中已经用了:rnSQLCA.UserID="dba"rnSQLCA.DBPass="sql"rnrn为什么执行时,数据库登录窗口"connect to sql anywhere"还是一样出现。虽然取消依然可以连接,但请问如何消除?
简易登录窗口(自带数据库)
一个用C#写的非常简易的登录验证窗口 实现的功能包括验证是否输入用户名和密码 以及连接数据库后验证此用户名和密码是否存在!!!
java2登录窗口原代码+数据库
java2登录窗口原代码+数据库
怎么去掉登录数据库的窗口
delphi通过BDE连接sql server2000数据库时,刚连接数据库时都会跳出一个登录窗口,要求输入用户名和密码,怎么把它去掉啊?
MFC连接到数据库
MFC连接到数据库,采用ADO方式的一些操作说明
连接到 ASP.NET 数据库
ASP.NET 使您可以灵活地连接至数据库。一种简单的方法是使用数据源控件,通过这些控件可以将数据访问封装到可以使用连接和查询信息配置的控件中。或者,可以使用 ADO.NET 类自己编写执行数据访问的代码。使用 ASP.NET 网页中的数据源控件若要使用数据源控件连接至数据库,请执行以下操作:确定所需的数据源控件的类型。例如,ObjectDataSource控件使用中间层业务对象检索和修改数据,...
不能连接到数据库
1.右键计算机打开管理 2. 3. 4找到msq 启动它就ok了。
C#连接到数据库
小弟刚刚开始学用C#来实现对数据库的连接访问。老师给了一段代码rnrnnamespace AdoTestrnrn public partial class Form1 : Formrn rn rnrnrn private SqlDataReader dr;rn private DataSet ds;rn private BindingSource bs;rnrn public Form1()rn rn InitializeComponent();rn ds = new DataSet();rn bs = new BindingSource();rn rn private void ChuShiHua()rn rn string ssql= "select * from student";rnrn //SqlCommand cmd=new SqlCommand(ssql,cn);rnrn SqlDataAdapter ad = new SqlDataAdapter(ssql,ConfigurationManager.ConnectionStrings["connString"].ConnectionString);rn rn ds.Clear();rn ad.Fill(ds, "student");rn rn //textBox2.Text = ds.Tables["student"].Rows[0]["sname"].ToString();rn bs.DataSource = ds;rn bs.DataMember ="student";rnrn bindingNavigator1.BindingSource = bs;rn dataGridView1.DataSource = bs;rnrn rn //dataGridView1.DataSource = ds.Tables["student"];rn //textBox1.DataBindings.Add("Text", ds.Tables["student"], "sno");rn //bindingSource1.DataSource = ds.Tables["student"];rn //bindingNavigator1.BindingSource=new BindingSource(ds,"student");rn //bindingNavigator1.BindingSource.DataMember="student";rn rnrnprivate SqlDataReader dr;rnprivate DataSet ds;rnprivate BindingSource bs;rn不明白这三行的作用,为什么要放在开头以及用PRIVATE,求大神解答,谢谢!
怎么连接到数据库??????
我用vs.net2005开发环境,以前做网站,现在要做一个windows application 要在一个checkListBox中显示数据库中的数据,该怎么连?
netbeans连接到数据库
netbeans连接到数据库netbeans连接到数据库
连接到数据库(JSP)
这个是我在连接MYSQL时用的测试文件,仅供参考; DbJsp.jsp //以try开始 try { Connection con; Statement stmt; ResultSet rs; //加载驱动程序,下面的代码为加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); //注册MySQL驱动程序 DriverM
eclipse 连接到数据库
/*泥煤的装了一下午的Myeclipse破解之后直接GG,除了JAVA PROJECT啥都没了.....悲剧的我只能重新捡起eclipse*/ 进入正题: tips:为方便TOMCAT使用,目前可以下载TOMCAT eclipse插件(下载地址:http://www.eclipsetotale.com/tomcatPlugin.html),eclipse目录下的plugins目录中。
连接到数据库(标准)
package cn.itcast.jdbc; import java.sql.*; public class Base { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String url=
接口连接到数据库
1、获取本机的SQL Serverserver名 private void Form2_Load(object sender, EventArgs e) { listBox1.Items.Clear(); SQLDMO.Application SQLServer = new SQLDMO.Applic...
连接到数据库
import java.sql.*; public class ExecuteSQL { public static void main(String args[]) throws Exception { /* Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://LocalHost/student?user=r
jdbC连接到数据库
package cn.aweiyo.jdbc; import java.sql.Driver; import java.sql.DriverManager; import java.sql.DriverPropertyInfo; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties
asp.net 连接到数据库
需要一个登陆界面,连接到数据库,存在该用户并且密码正确就跳转到别的界面
jdbc连接到数据库
JDBC只是一个编程接口集,它所定义的接口主要包含在java.sql和javax.sql。
怎样连接到数据库
小弟是新手。所以很简单的问题都不懂。rnrn老板给了一个用户名和密码,是数据库的。然后就出差了,要怎么连接到数据库上去啊。
1.3.1 连接到数据库
1.3.1 连接到数据库正在更新内容,请稍后
SparkStreaming连接到数据库
先创建一个连接池,提高效率: MysqlPool: object MysqlPool { private val max = 8 //连接池的连接总数 private val connectionNum = 10 //每次产生的连接数 private var conNum = 0 //当前连接池已经产生的连接数 import java.util pri...
连接到SQL数据库
我的代码是连接到SQL数据库,输入用户密码,点登录,然后打开下一个界面
连接到orcl数据库
链接数据库  sqlplus system/密码@IP地址/数据库名 sqlplus system/yanjinggis@localhost/yanjing   tanzugan
数据库登录
知识: 一、mysql数据库的备份命令: 1、找到mysql安装路径下的bin文件 2、在cmd命令窗口,cd到mysql安装路径下的bin文件 3、输入以下命令: mysqldump -hlocalhost -uroot -p otpdb_1 &gt; otpdb_1.sql 4、则数据库otpdb_1便被备份到bin路径下了 mysql数据库的还原命令: mysql -hlo...
数据库的登录
用于数据库简单登录,首先用户名和密码的输入,与数据库进行核对后,登陆成功。
登录数据库
各位大师:rn    请问怎样用HR或OE帐号连接数据库。(在线给分)
jsp+JavaBEAN进行一个简单的登录数据库SQL
小弟初学JSP,想做一个简单登录,在JSP里面调用JAVABEAN,用的eclipse,在eclipse里面测试连接数据库能通过,在JSP不调用JAVABEAN连接数据库也能通过,但是2着结合就出问题了。下面是我的代码:rnpackage opendb;rnimport java.sql.*;rnpublic class opendb rnrn String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";rn String sConnStr="jdbc:odbc:ZHHAO";rn Connection conn=null;rn ResultSet rs=null;rn public opendb()rnrn tryrn Class.forName(sDBDriver);rn rn catch(java.lang.ClassNotFoundException e)rn rn System.err.println("testJDBC():"+e.getMessage());rn rnrn public ResultSet executeQuery(String testJDBC)rnrn rs=null;rn tryrn conn=DriverManager.getConnection(sConnStr);rn Statement stmt=conn.createStatement();rn rs=stmt.executeQuery(testJDBC);rn rn rn catch(SQLException ex)rn rn System.err.println("aq.executeQuety:"+ex.getMessage());rn rn return rs;rnrnrnJSP代码:rn<%@page language="java" import="java.sql.*"%>rnrn<%rnString name1=request.getParameter("username");rnString pwd1=request.getParameter("password");rnString sql="select * from USER1 where username='"+name1+"' and password='"+pwd1+"'";rnResultSet rs=RegisterBean.executeQuery(sql);rnif(rs.next())rnrnrs.close();rnsession.putValue("username",name1);rn%>rn rn<%rnrnelsernrs.close();rnsession.putValue("login_message","Error on Login");rn%>rn rn<%rnrn%>rnrnrn错误显示:rntype Exception reportrnrnmessage rnrndescription The server encountered an internal error () that prevented it from fulfilling this request.rnrnexception rnrnorg.apache.jasper.JasperExceptionrn org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)rn org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)rn org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:856)rnrnrnroot cause rnrnjava.lang.NullPointerExceptionrn org.apache.jsp.login_jsp._jspService(login_jsp.java:58)rn org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:856)rn org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)rn org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)rn org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:856)rnrnrnnote The full stack trace of the root cause is available in the Tomcat logs.rnrn