前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#操作Sql Server数据库以及MD5加密存储

C#操作Sql Server数据库以及MD5加密存储

作者头像
喜欢ctrl的cxk
发布2019-11-07 21:30:50
1.8K0
发布2019-11-07 21:30:50
举报
文章被收录于专栏:Don的成长史Don的成长史

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

写在前面:

简单地写一下MD5加密存储和C#如何操作Sql Server数据库吧。(注意哦:真的是特别简单地写了一下几个对象的实例化)。

MD5加密存储:

首先要加上这个用于加密的命名空间using System.Security.Cryptography; 实例化MD5对象后先调用ComputeHash方法来将字符串进行加密处理,再用Convert来将字节型数组转化为字符串,这个字符串即为加密后的密码。

代码语言:javascript
复制
//使用MD5加密明文密码
MD5 md5 = new MD5CryptoServiceProvider();  //实例化MD5对象
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password));   //调用ComputeHash方法将字符串进行加密处理
password = Convert.ToBase64String(s);      //将字节类型的数组转换为字符串,得到加密后的密码

MD5是具有不可逆性的,一旦加密之后就无法再进行解密。我们一般是在账号注册时将密码通过MD5加密后存入数据库,新注册账号之后。我们打开sql server查询login_table表(提前建好的,建表代码略),可以看到存取的密码不再是明文而是经过MD5加密后的字符串。

在账号登录时我们需要判断输入的密码是否正确,而MD5加密是不可逆的 也就意味着它无法解密,所以我们需要将用户输入的密码再加密一次然后再与数据库中已加密存储的密码进行比对,如果比对结果一致则登陆成功。

C#操作Sql Server的几个对象:

首先要加上命名空间using System.Data.SqlClient; 我用到的对象其实也就是这几个,先拿用户登录界面这部分来举例子吧:

①SqlConnection:创建数据库连接对象。下面这段代码表示以sa的身份与sql server建立连接,并指定到Library这个数据库。

代码语言:javascript
复制
SqlConnection connection = new SqlConnection("Data Source=.;Initial Catalog=Library;User ID=sa;Password=sql123");  //实例化连接对象
connection.Open();   //打开连接,使用完后记得connection.Close();

②SqlCommand:执行SQL语句对象。下面这段代码表示用SqlCommand来执行SQL语句:SELECT userid,password FROM login_table WHERE username = '(用户输入的username)' AND password = '(用户输入的password)'。判断用户输入的账号密码是否正确。特别需要注意单引号不能舍去,不然不符合SQL语法。(login_table表是在sql server中建好的,这里不提供建表代码太简单啦 不值一提。)

代码语言:javascript
复制
SqlCommand command = new SqlCommand("SELECT username,password FROM login_table WHERE username ='" + username + "' AND password ='" + password + "'", connection);

③SqlDataReader:创建一个查询一条或多条数据的对象,提供只读单向数据的快速传递。

代码语言:javascript
复制
SqlDataReader data = command.ExecuteReader();
data.Read();      //使用完后记得要data.Close();
if (data.HasRows)    //HasRows用来判断查询结果中是否有数据,返回值为true或false
{
    MessageBox.Show("登录成功!", "通知", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); //登录成功
    data.Close();   //关闭SqlDataReader对象
    connection.Close();  //关闭连接
    this.Visible = false;   //隐藏登录窗体
    new Form3().ShowDialog();   //打开管理员界面
}
else
{
   MessageBox.Show("登录失败!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

到这里 登录操作就写完了啦。下面再简单地写一下从sql server中读取某张表的数据信息,就拿借书办理这个界面的查询书籍列表为例吧。

④DataSet:创建一个本地数据存储对象,其实就是数据在内存区的缓存。

代码语言:javascript
复制
DataSet ds = new DataSet();   //实例化DataSet对象

⑤SqlDataAdapter:创建一个用于检索和保存数据的对象,可以用来填充DataSet。

代码语言:javascript
复制
SqlDataAdapter sda = new SqlDataAdapter("SELECT bookid '图书序列号',name '书名',author '作者',publisher '出版商',pubdate '出版时间',ISBN '国际标准书号',price '单价',booknum '库存数量' FROM book_table", connection);
sda.Fill(ds);   //向DataSet中填充数据
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面:
  • MD5加密存储:
  • C#操作Sql Server的几个对象:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档