通过SqlHelper实现登录
1.建立解决方案:.
首先创建windows窗体应用程序,然后拖出登录界面
2. 写配置文件App.config:
<configuration>
<connectionStrings>
<add
name="mssqlserver"
connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=1q2w3e4R"/>
</connectionStrings>
</configuration>
其中的name可以随意去写,没有任何限制。连接字符串中的【Data Source=.】为服务器名称,【Initial Catalog-test】为表名,后面的为用户名和密码。
3. 写SqlHelper代码:
3.1 读取配置文件:
·首先要添加引用:System.Configuration
·然后读取连接字符串:
private
static
readonly
string
connStr
=
ConfigurationManager.ConnectionStrings["mssqlserver"].ConnectionString;
3.2 封装常用的方法
·执行insert/delete/update的方法
public
static
int
ExecuteNonQuery(string
sql, CommandType
cmdType, params
SqlParameter[] pms)
{
//创建连接对象
using (SqlConnection
con
=
new
SqlConnection(connStr))
{
//创建命令对象
using (SqlCommand
cmd
=
new
SqlCommand(sql, con))
{
//设置当前执行的是存储过程还是带参数的Sql语句
cmd.CommandType
=
cmdType;
//判断是否传递参数
注意:如果传递的不是数组类型,那么不去判空也不会报错,但是如果是数组类型,那么就会报错。所以为了保险起见,应该进行判空。
if (pms
!=
null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return
cmd.ExecuteNonQuery();
}
}
}
·执行返回单个值的方法
public
static
object
ExecuteScalar(string
sql, CommandType
cmdType, params
SqlParameter[] pms)
{
using (SqlConnection
con
=
new
SqlConnection(connStr))
{
using (SqlCommand
cmd
=
new
SqlCommand(sql, con))
{
cmd.CommandType
=
cmdType;
if (pms
!=
null)
{
cmd.Parameters.AddRange(pms);
}
con.Open();
return
cmd.ExecuteScalar();
}
}
}
·返回SqlDataReader的方法
public
static
SqlDataReader
ExecuteReader(string
sql, CommandType
cmdType, params
SqlParameter[] pms)
{
SqlConnection
con=new
SqlConnection(connStr);
using (SqlCommand
cmd
=
new
SqlCommand(sql, con))
{
cmd.CommandType
=
cmdType;
if (pms
!=
null)
{
cmd.Parameters.AddRange(pms);
}
try
{
con.Open();
return
cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
con.Close();
con.Dispose();
throw;
}
}
}
·执行返回DataTable方法
public
static
DataTable
ExecuteDataTable(string
sql, CommandType
cmdType, params
SqlParameter[] pms)
{
DataTable
dt=new
DataTable();
using (SqlDataAdapter
adapter
=
new
SqlDataAdapter(sql, connStr))
{
adapter.SelectCommand.CommandType
=
cmdType;
if (pms
!=
null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
return
dt;
}
}
4. 执行登录操作:
private
void
button1_Click(object
sender, EventArgs
e)
{
string
sql
=
"select COUNT(*) from users where loginId=@uid and loginPwd=@pwd";
SqlParameter[] pms=new
SqlParameter[]
{
new
SqlParameter("@uid",textBox1.Text.Trim()),
new
SqlParameter("@pwd",textBox2.Text)
};
int
n=(int) SqlHelper.ExecuteScalar(sql, CommandType.Text, pms);
if (n
>
0)
{
MessageBox.Show("成功!");
}
else
{
MessageBox.Show("失败!");
}
}
通过SqlHelper实现登录的更多相关文章
- ADO.NET复习总结(5)--工具类SqlHelper 实现登录
工具类SqlHelper 即:完成常用数据库操作的代码封装 一.基础知识1.每次进行操作时,不变的代码: (1)连接字符串:(2)往集合存值:(3)创建连接对象.命令对象:(4)打开连接:(5)执行命 ...
- 新闻公布系统 (Asp.net 三层架构 )
2012年度课程设计---新闻公布系统(小结) ...
- 2015-11-03 ado.net3
DataReader和DateSet区别: 1. DataReader是一行一行的读,且只能向前读.DateSet是一次性读取出来放到内存中,所以,DataReader读取速度更快,占用内存更低. 2 ...
- sqlHelper做增删改查,SQL注入处理,存储值,cookie,session
一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...
- sqlHelper做增删改查
1.把数据库里面的数据显示出来 sqlHelper怎么用:[网上可以下载,需要可以找楼主要] 1.拷贝到项目,修改它的命名空间等于当前项目名称 2.数据库的连接信息,用户名,密码,登录方式等 < ...
- 一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]
一.工具: vs2013[因为我现在用的也是2013,版本随便你自己开心] sql2008[准备过久升级] 二.用到的语言: HTML+CSS+Jquery+Ajax+sqlserver HTML[相 ...
- Web应用程序系统的多用户权限控制设计及实现-登录模块【4】
通过前三个模块的介绍,把web权限系统开发所需要的基本类,Css文件,EasyUI框架等准备好后,就可以着手开始系统的编码了. 登陆模块是权限处理系统的关键,根据输入用户的的信息,可自动从数据库中加载 ...
- MVC登录案例
1.在Controllers文件夹里面新建一个控制器HomeController;2.在默认的Index方法里面添加一个视图,名字跟Controller中的方法名一样叫Index,添加后的视图文件会在 ...
- JQuery的ajax登录案例
1.简单版AjaxLogin.html代码: <head> <title></title> <script src="jquery-1.8.3.js ...
随机推荐
- 转 SSH框架搭建详细图文教程
原址:http://blog.sina.com.cn/s/blog_a6a6b3cd01017c57.html 什么是SSH? SSH对应 struts spring hibernatestruts ...
- JDK的目录结构及结构图
-bin目录: JDK开发工具的可执行文件 -lib目录: 开发工具使用的归档包文件 -jre: Java 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器, ...
- 操作native window的QxtWindowSystem (好像是一个IM的一部分)
http://libqxt.bitbucket.org/doc/0.6/qxtwindowsystem.html https://github.com/psi-plus/plugins/blob/ma ...
- setFocus一定要写在setLayout设置的后面,否则不起作用——使用setFocusPolicy为控件设置不同的焦点策略:Tab焦点,Click焦点,Wheel焦点和没有焦点
QLineEdit* pEditor = new QLineEdit(m_strText); pEditor->resize(.......); pEditor->move(. ...
- Ubuntu 麒麟版下安装:Apache+php5+mysql+phpmyadmin.
摘要 LAMP是Linux web服务器组合套装的缩写,分别是Apache+MySQL+PHP.此文记录在Ubuntu上安装Apache2服务器,包括PHP5(mod_php)+MySQL+phpmy ...
- IOS开发之----协议与委托(Protocol and Delegate) 实例解析
1 协议: 协议,类似于Java或C#语言中的接口,它限制了实现类必须拥有哪些方法. 它是对对象行为的定义,也是对功能的规范. 在写示例之前我给大家说下@required和@optional这两个关键 ...
- 有关VS2008制作安装包时遇到的问题详解
公司最近要做一个安装包,然而在做的时候遇到好多问题,这里我一一记录下来 一.先用VS2008建一个Setup项目,添加你需要打包的文件,这里我就不具体介绍了,网上一搜都好多,这时我们一般都需要在安装前 ...
- !!!易控INSPEC组态软件开发小结——-一次工程文件损坏和处理经过
从加入红橡开始熟悉和使用易控(INSPEC)组态软件,值得赞扬的是INSPEC的开放性和对C#语言的支持,除此之外,便也没有感觉它与其他组态软件有太多优势,有人说INSPEC软件授权比国内其他同类的组 ...
- AsyncSocket的长连接使用
使用背景:需要跟服务器长期保持连接进行即时通讯:还有在跟智能硬件建立实时链接进行同步智能硬件的状态等,最近我就做项目就碰到需要实时更新智能硬件的状态(比如智能硬件的电量,以及其它工作状态),跟智能硬件 ...
- Objective-c 中的变量
OC中的语言变量,按作用域可分为两种:局部变量和全局变量. 局部变量:也称为内部变量,局部变量是在方法内部声明的.其作用域仅限于方法内,离开该方法再使用这个变量就是非法的. 全局变量:也称为外部变量, ...