为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

老程序员学C ------实例一 登陆系统的数据库操作

2018-02-12 8页 doc 22KB 14阅读

用户头像

is_314871

暂无简介

举报
老程序员学C ------实例一 登陆系统的数据库操作老程序员学C ------实例一 登陆系统的数据库操作 在项目中,我们通常会将数据库操作单独提出来,封装成为一个类,在需要调用的时候,直接使用该类的相关操作函数,这样减少代码的重复量,也便于程序员模块化构建和风格化的阅读。 这里,通过一个登陆对话框的实例来说明数据库操作封装的过程。相关代码可以在项目中直接使用。 首先,创建一个窗口项目,并将控件拖到窗口上创建如下窗口元素: 再添加一个窗口form2,如下: 在SQL2005数据库中建立数据库testDB,在该数据库下创建表TB_Login,相关字段信息如下: 其中I...
老程序员学C  ------实例一 登陆系统的数据库操作
老程序员学C ------实例一 登陆系统的数据库操作 在项目中,我们通常会将数据库操作单独提出来,封装成为一个类,在需要调用的时候,直接使用该类的相关操作函数,这样减少代码的重复量,也便于程序员模块化构建和风格化的阅读。 这里,通过一个登陆对话框的实例来说明数据库操作封装的过程。相关代码可以在项目中直接使用。 首先,创建一个窗口项目,并将控件拖到窗口上创建如下窗口元素: 再添加一个窗口form2,如下: 在SQL2005数据库中建立数据库testDB,在该数据库下创建TB_Login,相关字段信息如下: 其中ID字段的数据类型下,设置为自动更新项,方法是打开该列属性下的标示规范,选择是,增量选1。如图: 我们实现的目标是,程序运行form1窗口,显示登陆窗口,用户输入用户名和密码,如果与数据库中的对应字段相匹配,那么就显示form2,并在form2中显示相应的用户+“您已经成功登陆~”。 一,首先添加数据库操作类 在右边的解决方案资源管理器中,右键点击项目名称Login ,选择“添加„”,选择添加类,在弹出的对话框中,输入该类的名称:Cls_DataOp.cs。 双击创建的类Cls_DataOp.cs,开始创建代码。 首先加入两个数据库操作支持类库: using System.Data.SqlClient; using System.Data; 应为数据库连接字符串我们要在所有函数中都要调用,所以作为全局变量来声明: string str_conn = @"Data Source=(local)/SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=testDB;"; SqlConnection conn; 首先编写数据库连接函数: #region /// /// 打开数据库连接 /// public void SQL_conn() { try { conn = new SqlConnection(str_conn); conn.Open(); } catch { throw; } } #endregion 数据库操作一般有三种方式,一种是查询出某一个字段的值,一种是查询出结果是一个数据表,最后就是查询出数据数量。分别根据这三个目的,创建相应的函数。 一,获得查询到数据的第一行第一列数据内容 #region /// /// 获得查询到数据的第一行第一列数据内容 /// /// public object SQL_GetWord(string str_sql) { try { SQL_conn(); SqlCommand SQL_comd = new SqlCommand(str_sql, conn); return SQL_comd.ExecuteScalar(); } catch { throw; } finally { conn.Close(); } } #endregion 二,获得查询到数据的数据表 #region /// /// 获得查询到数据的数据表 /// /// /// public DataTable SQL_GetTable(string str_sql) { try { SQL_conn(); SqlCommand SQL_comd = new SqlCommand(str_sql, conn); SqlDataAdapter SQL_adp = new SqlDataAdapter(SQL_comd); DataSet ds = new DataSet(); SQL_adp.Fill(ds); return ds.Tables[0]; } catch { throw; } finally { conn.Close(); } } #endregion 三,获得查询结果的数量 #region /// /// 获得查询结果的数量 /// /// /// public int SQL_GetCount(string str_sql) { try { SQL_conn(); SqlCommand SQL_comd = new SqlCommand(str_sql, conn); return SQL_comd.ExecuteNonQuery(); } catch { throw; } finally { conn.Close(); } } #endregion 数据库操作类的所有成员创建完了,然后开始给Form1的登陆按钮和取消按钮创建事件。 首先创建“取消”按钮事件。 双击“取消”按钮控件,创建该控件的,,,;,事件,代码如下: private void button2_Click(object sender, EventArgs e) { this.Close();//关闭窗口 } 双击“登陆”按钮,添加,,,;,事件,代码如下: private void button1_Click(object sender, EventArgs e) { //数据库操作 Cls_DataOp Doper = new Cls_DataOp(); object pwd = Doper.SQL_GetWord("select user_pwd from TB_Login"); object name = Doper.SQL_GetWord("select user_name from TB_Login"); //判断用户名是否为空 if (textBox1.Text == "") { MessageBox.Show("用户名文本框为空~"); return; } else { //判断数据库中user_name字段是否为空 if (name == null) { MessageBox.Show("数据库中user_name字段为空~"); return; } else { //判断用户名是否与数据库中的user_name字段内容相等 if (textBox1.Text == name.ToString().Trim()) { MessageBox.Show("用户名确认正确~"); //判断密码框是否为空 if (textBox2.Text == "") { MessageBox.Show("密码文本框为空~"); return; } else { //判断数据库中密码字段是否为空 if (pwd == null) { MessageBox.Show("数据库中user_pwd字段为空 "); return; } else { //判断密码框与数据库中密码字段是否相等 if (textBox2.Text == pwd.ToString().Trim()) { MessageBox.Show("密码已经确认!"); //用户名确认,密码确认相等后,执行下面操作: 打开form2窗口,并将用户名赋值给全局变量user_name. user_name = textBox1.Text.Trim(); Form2 frm2 = new Form2(); frm2.Show(); this.Hide(); return; } else { MessageBox.Show("密码错误,输入的密码与数据 库里user_pwd字段内容不匹配~"); return; } } } } else { MessageBox.Show("用户名错误,输入的用户名与数据库里user_name字段内容不匹配~"); return; } } } } 这里定义一个全局变量作为参数传递。 public static string user_name = ""; 然后再,,,,,窗口中,双击窗口,添加如下代码: private void Form2_Load(object sender, EventArgs e) { label2.Text = Form1.user_name; } 此时运行程序如图: 该实例完成。
/
本文档为【老程序员学C ------实例一 登陆系统的数据库操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索