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实现登录的更多相关文章

  1. ADO.NET复习总结(5)--工具类SqlHelper 实现登录

    工具类SqlHelper 即:完成常用数据库操作的代码封装 一.基础知识1.每次进行操作时,不变的代码: (1)连接字符串:(2)往集合存值:(3)创建连接对象.命令对象:(4)打开连接:(5)执行命 ...

  2. 新闻公布系统 (Asp.net 三层架构 )

    2012年度课程设计---新闻公布系统(小结)                                                                             ...

  3. 2015-11-03 ado.net3

    DataReader和DateSet区别: 1. DataReader是一行一行的读,且只能向前读.DateSet是一次性读取出来放到内存中,所以,DataReader读取速度更快,占用内存更低. 2 ...

  4. sqlHelper做增删改查,SQL注入处理,存储值,cookie,session

    一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...

  5. sqlHelper做增删改查

    1.把数据库里面的数据显示出来 sqlHelper怎么用:[网上可以下载,需要可以找楼主要] 1.拷贝到项目,修改它的命名空间等于当前项目名称 2.数据库的连接信息,用户名,密码,登录方式等 < ...

  6. 一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]

    一.工具: vs2013[因为我现在用的也是2013,版本随便你自己开心] sql2008[准备过久升级] 二.用到的语言: HTML+CSS+Jquery+Ajax+sqlserver HTML[相 ...

  7. Web应用程序系统的多用户权限控制设计及实现-登录模块【4】

    通过前三个模块的介绍,把web权限系统开发所需要的基本类,Css文件,EasyUI框架等准备好后,就可以着手开始系统的编码了. 登陆模块是权限处理系统的关键,根据输入用户的的信息,可自动从数据库中加载 ...

  8. MVC登录案例

    1.在Controllers文件夹里面新建一个控制器HomeController;2.在默认的Index方法里面添加一个视图,名字跟Controller中的方法名一样叫Index,添加后的视图文件会在 ...

  9. JQuery的ajax登录案例

    1.简单版AjaxLogin.html代码: <head> <title></title> <script src="jquery-1.8.3.js ...

随机推荐

  1. Ubuntu Server修改IP、DNS、hosts

    本文记录下Ubuntu Server 16.04修改IP.DNS.hosts的方法 -------- 1. Ubuntu Server 修改IP sudo vi /etc/network/interf ...

  2. spring util命名空间

    在spring的配置文件中util命名空间类似于java.util包类对应,util命名空间提供了集合相关的配置,在使用命名空间前要导入util命名空间,如下: util命名空间引入 <bean ...

  3. this .运算符 和 [] 运算符

    首先看这个  这两个运行结果是不一样的 前两个是3  后面是10 var length = 10; var arr = [function(){console.log(this.length);},2 ...

  4. python进阶1--数据库支持

    数据库支持 1.连接和游标 1)connect函数,该函数有多个参数,而具体使用那个参数取决于数据库.--连接数据库 常用参数: dsn:数据源名称 user:用户名 password:用户密码 ho ...

  5. MySQL、You are using safe update mode

    MySQL默认模式是sql_safe_updates=1的.在这个模式下不管你是update还是delete一行where 条件都要指定主键.如果where条件只出现的不是主键就会出错. 例子: se ...

  6. RedHat/CentOS发行版本号及内核版本号对照表

    RedHat/CentOS发行版本号及内核版本号对照表 : Redhat 9.0———————————————2.4.20-8RHEL 3 Update 8————————————2.4.21-47R ...

  7. 快速学习使用 Windows Azure 上的 SharePoint Server 2013

     为了在当今的企业环境中占据一席之地,您需要能够迅速顺应变化和应对挑战.有时,需要及时调整您的SharePoint 基础结构以保持竞争优势. 基础结构即服务可通过随时使用.即付即用的解决方案应对这 ...

  8. HDU 5769 Substring(后缀数组)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5769 [题目大意] 在一个串中求出包含字母的子串个数, 只要存在一个字符不相等的子串即可视为不同的 ...

  9. JAVA GUI学习 - JPopupMenu鼠标右键菜单组件学习

    public class JPopmenuKnow { public void test() { //为表格添加鼠标右键菜单 JMenuItem jMenuItemFileInfo = new JMe ...

  10. Stars(树状数组+线段树)

    Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...