数据库注册登陆练习
2016-01-07 00:03
211 查看
以下是数据库注册练习的程序:
以下是界面图:
从该程序中我们能学习到什么:
其一:
引用块内容
关于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的区别:
1、ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是 SQL=”CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)”那么在表创建成功后该方法返回 –1。
例如:
private void Page_Load(object sender, System.EventArgs e)
{
MyConnection.Open();’打开数据库
MyCommand1.CommandText = “CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)”; MyCommand1.Connection = MyConnection;
MyCommand1.ExecuteNonQuery();’首先建立一个LookupCodes表,然后返回-1
//或者MyCommand1.ExecuteReader();首先建立一个LookupCodes表,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF
//或者MyCommand1. ExecuteScalar();首先建立一个LookupCodes表,返回未实列化的对象
MyConnection.Close();
}
2、 ExecuteScalar():执行SQL,(如果SQL是查询Select)返回查询结果的第一行第一列,如果(如果SQL不是查询Select)那 么返回未实列化的对象,因为对象未实列化,所以返回结果不能ToString(),不能Equals(null),也就是说返回结果没有任何作用
3、 executeReader方法执行SQL,(如果SQL是查询Select)返回查询结果的集合,类型是 System.Data.OleDb.OleDbDataReader,你可以通过此结果,获取查询的数据。如果(如果SQL不是查询Select)那么 返回一个没有任何数据的System.Data.OleDb.OleDbDataReader类型的集合(EOF)
其二:
如何添加程序配置文件:
第一步:
在工程里面添加新建项:选择应用程序配置文件 app.config
第二步:
在引用里面添加:System.configuration
第三步:
using System.Configuration;
第四步:
string connStr = ConfigurationManager.ConnectionStrings[“sql”].ConnectionString;
其三:
如何通过按钮控件的leave 事件,做出网络注册的效果
其四:
对一些控件的缩减词语的拼写:
http://wenku.baidu.com/view/85d395d384254b35eefd34e5.html
以上是学习的总结。
using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using System.Configuration; namespace 注册练习 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnReg_Click(object sender, EventArgs e) { string str_user = ""; string str_pwd = ""; string str_pwdConfirm = ""; str_user=txtUser.Text.Trim(); str_pwd=txtPwd.Text; str_pwdConfirm = txtPwdConfirm.Text; if (string.IsNullOrEmpty(str_user) || string.IsNullOrEmpty(str_pwd) || string.IsNullOrEmpty(str_pwdConfirm)) { MessageBox.Show("请输入完整信息"); return; } if (str_pwd != str_pwdConfirm) { MessageBox.Show("两次密码输入不一致"); return; } string connStr = @"server=LIULIAN;database=MyDB;uid=sa;pwd=123;Integrated security=true "; string sql = string.Format("insert into [Table_loginTest](uid,pwd)values('" + str_user + "','"+str_pwd+"');"); using (SqlConnection conn = new SqlConnection(connStr)) { if (lblStatus.Text == "√") //没有重复的,所以家这一条语句 { using (SqlCommand cmd = new SqlCommand(sql, conn)) { conn.Open(); int count = (int)cmd.ExecuteNonQuery(); //是否增加了一条数据 conn.Close(); MessageBox.Show(count > 0 ? "注册成功" : "注册失败"); } } } } private void txtUser_Leave(object sender, EventArgs e) //鼠标离开事件 { // string uid =txt.Text.Trim(); string str_uid = txtUser.Text.Trim(); if (string.IsNullOrEmpty(str_uid)) { lblStatus.Text = ""; return; } // 验证 string connStr = @"server=LIULIAN;database=MyDB;uid=sa;pwd=123;integrated security=true"; string sql = string.Format("select count(*) from [Table_loginTest] where uid='" + str_uid + "' "); using (SqlConnection conn = new SqlConnection(connStr)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { conn.Open(); int count=(int)cmd.ExecuteScalar(); conn.Close(); if (count > 0)//说明已经有重复的了 { lblStatus.ForeColor = Color.Red; lblStatus.Text ="用户已经存在"; } else //说明没有重复的 { lblStatus.ForeColor = Color.Green; lblStatus.Text = "√"; } } } } private void txtUser_TextChanged(object sender, EventArgs e) { //// string uid =txt.Text.Trim(); // string str_uid = txtUser.Text.Trim(); // if (string.IsNullOrEmpty(str_uid)) // { // lblStatus.Text = ""; return; // } // // 验证 // string connStr = @"server=.;database=MySecondDB;uid=sa;pwd=123;integrated security=true"; // string sql = string.Format("select count(*) from [Table_loginTest] where "); } private void btnLogin_Click(object sender, EventArgs e)//登陆测试 { string str_user = ""; string str_pwd = ""; string str_pwdConfirm = ""; str_user = txtUser.Text.Trim(); str_pwd = txtPwd.Text; str_pwdConfirm = txtPwdConfirm.Text; if (string.IsNullOrEmpty(str_user) || string.IsNullOrEmpty(str_pwd) || string.IsNullOrEmpty(str_pwdConfirm)) { MessageBox.Show("请输入完整信息"); return; } string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString; string sql = string.Format("select count(*) from [Table_loginTest] where uid='" + str_user + "' and pwd='" + str_pwd + "';"); using (SqlConnection conn = new SqlConnection(connStr)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { conn.Open(); int count = (int)cmd.ExecuteScalar(); conn.Close(); if (count > 0)//说明登陆正确 { MessageBox.Show("登陆成功"); } else //说明登陆错误 { MessageBox.Show("用户名或密码错误"); } } } } } } 以下是配置文件: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <connectionStrings> <add name="sql" connectionString="server=.;database=MyDB;uid=sa;pwd=123;integrated security=true"/> <add name="sql1" connectionString="第一个sql语句"/> </connectionStrings> </configuration>
以下是界面图:
从该程序中我们能学习到什么:
其一:
引用块内容
关于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的区别:
1、ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数,如果是 SQL=”CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)”那么在表创建成功后该方法返回 –1。
例如:
private void Page_Load(object sender, System.EventArgs e)
{
MyConnection.Open();’打开数据库
MyCommand1.CommandText = “CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)”; MyCommand1.Connection = MyConnection;
MyCommand1.ExecuteNonQuery();’首先建立一个LookupCodes表,然后返回-1
//或者MyCommand1.ExecuteReader();首先建立一个LookupCodes表,然后返回一个System.Data.OleDb.OleDbDataReader类型的对象,该对象为:EOF
//或者MyCommand1. ExecuteScalar();首先建立一个LookupCodes表,返回未实列化的对象
MyConnection.Close();
}
2、 ExecuteScalar():执行SQL,(如果SQL是查询Select)返回查询结果的第一行第一列,如果(如果SQL不是查询Select)那 么返回未实列化的对象,因为对象未实列化,所以返回结果不能ToString(),不能Equals(null),也就是说返回结果没有任何作用
3、 executeReader方法执行SQL,(如果SQL是查询Select)返回查询结果的集合,类型是 System.Data.OleDb.OleDbDataReader,你可以通过此结果,获取查询的数据。如果(如果SQL不是查询Select)那么 返回一个没有任何数据的System.Data.OleDb.OleDbDataReader类型的集合(EOF)
其二:
如何添加程序配置文件:
第一步:
在工程里面添加新建项:选择应用程序配置文件 app.config
第二步:
在引用里面添加:System.configuration
第三步:
using System.Configuration;
第四步:
string connStr = ConfigurationManager.ConnectionStrings[“sql”].ConnectionString;
其三:
如何通过按钮控件的leave 事件,做出网络注册的效果
其四:
对一些控件的缩减词语的拼写:
http://wenku.baidu.com/view/85d395d384254b35eefd34e5.html
以上是学习的总结。
相关文章推荐
- 基于linux的mongodb3.2副本集+分片集群搭建
- Redis之安装篇(windows 7 64位)
- Redis之java操作篇(数据对象的存取)
- Mysql事务及行级锁的理解
- SQLCODE=-668, SQLSTATE=57016
- SQL _Server实现字符串MD5加密
- SQL Server 触发器
- MySQL 对于大表(千万级),要怎么优化
- 每日一模式之数据库模式
- postgresql调试之关闭优化器
- postgresql内核分析之SQL解析(1)
- 动态字段插入及查询redis小结
- Mysql存储引擎基础
- [置顶] ORACLE 数据库 表连接 使用加号(+)
- MYSQL连接Error (1133): Can’t find any matching row in the user table错误的解决办法
- Error loading MySQLdb module: No module named MySQLdb 错误的解决方法
- 如何通过trn日志文件恢复SQL Server 事务日志 还原 备份
- 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
- 14-mysql优化之使用存储过程向mysql数据库中添加4000000条数据
- redis配置认证密码