学习笔记:ADO.Net之SqlConnection、Sqlcommand的应用。

 

 

SqlConnection

SQL:

新建数据库Edubase2018:如果数据库存在,则需删除原来的数据库。为了确保同一时刻没有其他用户正在访问此数据库,需要改变session状态设置为只允许单个用户访问,立刻断开数据库其他用户的连接以及回滚事务;

Visual Studio:

声明并实例化SQL连接:SqlConnection【类名称】 sqlConnection【实例名称】 = new SqlConnection()【构造函数,与类名相同,方法要加括号】;

使用Windows连接:sqlConnection.ConnectionString ="Server=(Local)【服务器名称】;Database=EduBaseDemo【连接数据库名称】;Integrated Security=sspi【Windows服务器验证打开】";

                               打开数据库:sqlConnection.Open();  最好同时敲出关闭语句:sqlConnection.Close();为了能在界面上体现出连接状态设置Msgbox提示;

 

 

Sqlcommand

SQL:

新建表tb_system

Visual Studio:

声明并实例化SQL命令:SqlCommand sqlCommand = new SqlCommand(),并将SQL命令的属性Connection指向SQL连接:sqlCommand.Connection = sqlConnection;

调用SQL命令的方法ExecuteScalar来执行命令,并接受单个结果(即标量):int rowCount = (int)sqlCommand.ExecuteScalar(),强制类型转换

为了更加直观体现查询命令执行成功,使用count(1),一条语句执行成功则显示1.如果rowcount==1,则显示登录成功;插入新数据时使用新变量rowaffected便表示;

数据安全:对数据进行加密,使用哈希函数,No_hospital=HASHBYTES('MD5',@No_hospital)

为了防止数据库注入式攻击使用参数:

  (1)SqlParameter sqlParameter = new SqlParameter(); //【声明并实例化SQL参数】;

     sqlParameter.ParameterName = "@Password"; //【设置SQL参数的名称】;

     sqlParameter.Value = this.txb_No_hospital.Text.Trim(); //设置SQL参数的长度;
     sqlParameter.SqlDbType = SqlDbType.Char; //【设置SQL参数对应的SQL Server数据类型】;
     sqlParameter.Size = 10; //【设置SQL参数的长度】;
     sqlCommand.Parameters.Add(sqlParameter); //【向SQL命令的参数集合添加SQL参数】;

(2)直接调用方法AddWithValue向SQL命令的参数集合添加参数的名称、值;SQL参数能自动识别类型,但若SQL参数被用作某函数的输入参数,则使用函数定义的参数类型作为SQL参数类型;通过参数名称访问SQL参数,并将密码参数的类型设为变长字符串;由于HASHBYTES函数的参数为NVARCHAR,则SQL参数类型自动设为NVARCHAR;对于相同密码,VARCHAR/NVARCHAR类型所获得的散列值不同,故需手动将SQL参数类型统一设为VARCHAR;

sqlCommand.Parameters.AddWithValue("@Password", this.txb_Password.Text.Trim()); 
sqlCommand.Parameters["@Password"].SqlDbType = SqlDbType.VarChar;

 

转载于:https://www.cnblogs.com/ZQHHP/p/9657684.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值