WebForm登录页面(连接数据库)_李_lym的博客-程序员秘密

技术标签: 十一的博客  代码  ado.net  WebForm登录页面(连接数据库)  SqlCommand  

登录页面:

当用户名密码输入正确,点击确定可以跳转到下一个页面

 


我们需要先引入命名空间:

using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;

页面代码:

           
            string name = TextBox1.Text.Trim();//获取到文本框中的用户名
            string pwd = TextBox2.Text;//获取到文本框中的密码
            //连接数据库字段
            string sqlcoon = "Data Source=.;Initial Catalog=logis;Integrated Security=True";
            string sql = string.Format("select count(*) from User1 where [email protected] and [email protected]_");//查询是否有该条记录,根据账户密码
            SqlParameter[] par = {
                new SqlParameter("@Account",name),
                   new SqlParameter("@Password_",pwd)

            };
            using (SqlConnection con = new SqlConnection(sqlcoon))//SqlConnection连接,用using释放连接

            {
                using (SqlCommand com = new SqlCommand(sql, con))//SqlCommand连接,用using释放连接

                {
                    com.Parameters.AddRange(par);
                    //打开连接
                    con.Open();

                    int resert = Convert.ToInt32(com.ExecuteScalar());
                    //关闭连接
                    //con.Close();
                    //释放连接
                    // con.Dispose();
                    if (resert > 0)
                    {

                        Response.Redirect("开票界面.aspx");
                    }
                    else
                    {
                        Label1.Text = "账户名或密码错误!";

                    }
                }
            } 

知识点:

1.连接数据库字段

//连接数据库字段
            string sqlcoon = "Data Source=.;Initial Catalog=logis;Integrated Security=True";

连接数据库字段是根据自己的数据库连接来写的。其中server表示运行Sql Server的计算机名,由于程序和数据库系统是位于同一台计算机的,所以我们可以用.(或localhost)取代当前的计算机名。Date Source表示所使用的数据库名(logis)。integrated security=true 的意思是集成验证,也就是说使用Windows验证的方式去连接到数据库服务器。这样方式的好处是不需要在连接字符串中编写用户名和密码,从一定程度上说提高了安全性。

2.查询语句

 string sql = string.Format("select count(*) from User1 where [email protected] and [email protected]_");

这样写数据库是为了防止恶意攻击数据库。

3.SqlParameter

  SqlParameter[] par = {
                new SqlParameter("@Account",name),
                   new SqlParameter("@Password_",pwd)

            };

SqlParameter对象在C#中获取存储过程的返回值。利用Add方法和AddRange方法来使用。

4.使用using释放资源
例如:Using(){}
using释放的是非托管资源

close()只是关闭连接,但是通道没有销毁,dispose()不仅把连接给关闭了,而且把通道也给销毁了。

可以用using来代替dispose()

5.ExecuteScalar

SqlCommand对象的三种方法:

(1)判断增删改的ExcuteNonQUery()方法,会在增删改成功之后返回数字 

(2)读取sql查询语句的内容使用SqlDataReader()方法

(3)SqlCommand.ExecuteScalar()方法的作用就是

执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他行或列,返回值为object类型





版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_40900884/article/details/81030461

智能推荐

通过QQ查看对方地址_weixin_30337251的博客-程序员秘密

不知道大家现在还有没有用能显示对方IP的QQ版本,现在貌似很少人使用这类版本的QQ了。此功能前几年十分流行,很受欢迎,每次上QQ,就能立即看到对方在什么地方。我一直想找一个能显示对方IP的QQ版本,官网上的版本肯定是没有的了,但是一直都找不到能真正有效有用的其它版本,之前试用过狂人、传美、飘云的版本,但一样不好使,后来也就不再找了,现在使用从官网下载的QQ2009SP3。想想以前的珊瑚虫QQ,...

注册表完全恢复手册(转)_cuankuangzhong6373的博客-程序员秘密

注册表是伴随着Win95出现在我们面前的,其实它早就在NT中担当起了重要的作用。采用注册表来管理系统配置,主要是为了提高系统的稳定性。而系统出现的一些问题(如无法启动、应用程序无法运行、系统工作不正常等),很多都是因注册表出现错...

LeetCode 215. 数组中的第K个最大元素 Python3_Victordas的博客-程序员秘密

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。用Python写...

联想RQ940升级bios_联想服务器bios升级文件_zds00virtue的博客-程序员秘密

联想RQ940服务器,旧bios版本是S4L_3A02笔记本电脑连接服务器管理口,管理口默认IP是192.168.0.120,默认账号密码:admin/admin登录进去,点击BIOS Update服务器必须是关机状态,点击Enter UpdateMode点击确定选择文件选择.bin文件,该文件到联想官网下载https://datacentersupport.lenovo.com/cn/zc/products/servers/thinkserver/rq940/downloads/d

C语言标准库--官网_c标准库 网站_此间的年少的博客-程序员秘密

本文包括大部分C标准库函数,但没有列出一些用途有限的函数以及某些可以简单的从其他函数合成的函数,也没有包含多字节和本地化函数。标准库中的各个函数、类型以及宏分别在以下标准头文件中说明:目录列表输入与输出字符类测试字符串函数数学函数实用函数诊断变长变量表非局部跳转信号处理日期与时间函数

报错解决——DateTimeField *** received a naive datetime (***) while time zone support is active..._weixin_30633507的博客-程序员秘密

  这是一个跟时区有关的问题,报错中说到datetime字段得到一个naive datetime,而不是支持time zone的active datetime由于Django的设置中米哦人USE_TZ设置为True,Django会自动根据所设的时区对时间进行转换,所以程序中和数据保存的时间都转UTC时间,只有模版渲染时会把时间转为TIME_ZONE所设置的时区的时间。  使用datetime....

随便推点

felayman——Smarty的简单入门笔记_iteye_20659的博客-程序员秘密

1.先看看Smarty的目录结构,我这里使用的是3.1.6,我是按照官方给的源码demo的要求,新建了几个文件夹2.然后在项目目录下新建一个引用Smarty的配置文件我这里就使用了smarty.config.php,如下图我这里是使用自己的类继承Smarty来引导各种文件的路径<?php //这里编写引用smarty模板的配置文件 require 's...

elementui树节点ajax,Vue\Element UI树组件懒加载,并解决展开选中节点的子节点不选中问题..._知乎人文的博客-程序员秘密

一 业务场景:树数据量过大二 解决方案:1.异步加载2.手风琴模式3.保存已加载的选中的节点keys(未加载的子节点不保存),页面初始化时设置选中的keys4.匹配时根据节点的绝对路径进行匹配三 代码1.created方法中设置this.checkedKeys即可在页面初始化时加载节点的选中状态2.使用json数据模拟ajax请求,实际开发中将json数据替换为ajax返回值并用js方法将业务数据...

android edittext inputtype 默认字母,Android EditText inputType imeOptions 属性-Fun言_林都的博客-程序员秘密

一、inputType属性//文本类型,多为大写、小写和数字符号。android:inputType=”none”android:inputType=”text”android:inputType=”textCapCharacters” 字母大写android:inputType=”textCapWords” 首字母大写android:inputType=”textCapSentences” 仅第...

如何准备Java初级和高级的技术面试_结合concurrenthashmap的源代码,说出final,volatile,transient_csdn_xiaogui的博客-程序员秘密

本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只有当反复确认能力不行才会下结论,相反,如果候选人给我的印象不错,我也会从多个角度来衡量,以免招进会说但不会干活的“大忽悠”。其实倒也不是我故意要为难候选人,毕竟入职后就是同事,但面试官的职责使...

详解 setTimeout 实现机制与原理,手写一个实现_前端瓶子君的博客-程序员秘密

面试官也在看的前端面试资料setTimeout 方法,就是一个定时器,用来指定某个函数在多少毫秒之后执行。它会返回一个整数,表示定时器的编号,同时你还可以通过该编号来取消这个定时器:fun...

数据结构PTA第四次练习题 二叉树删除子树_imagine7的博客-程序员秘密

二叉树删除子树编写程序对给定二叉树执行若干次删除子树操作,输出每次删除子树后剩余二叉树的中根序列。二叉树结点的数据域值为不等于0的整数。每次删除操作是在上一次删除操作后剩下的二叉树上执行。输入格式:输入第1行为一组用空格间隔的整数,表示带空指针信息的二叉树先根序列,其中空指针信息用0表示。例如1 5 8 0 0 0 6 0 0表示如下图的二叉树。第2行为整数m,表示要进行的删除操作次数。接下来m行,每行一个不等于0的整数K,表示要删除以K为根的子树。m不超过100,二叉树结点个数不超过5000。输入数