第二周学习笔记:SqlConnection、Sqlcommand
思维导图:
知识点:SQL连接字符串构造、连接字符串加密
SqlConnection:直接声明并实例化SQL连接,在在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性,用sqlConnection.State.ToString()显示当前的连接状态;
先声明并实例化SQL连接,然后利用SQL连接字符串构造器分别将各控件的内容赋予SQL连接字符串构造器的相应属性,即数据源、初始化条目(数据库)、集成安全性(是否windows验证);
也可以利用配置文件实现更方便的连接,需要先添加包含访问配置文件所需的配置管理器,即添加引用System.Configuration,接着配置管理器从配置文件读取连接字符串,并将之赋予SQL连接的连接字符串属性;另外还可以对连接字符串实现加密,即保存,
通过.ConnectionStrings.ConnectionStrings.Add(connectionStringSettings)来实现连接字符串的写入,然后configuration.ConnectionStrings.SectionInformation.ProtectSection(null)对连接字符串进行加密;
Sqlcommand:
直接声明并实例化SQL命令,SQL命令的命令文本由字符串拼接而成,不含参数,然后调用SQL命令的方法ExecuteScalar来执行命令,返回标量结果,执行标量的返回结果类型为object,可通过强制类型转换,转为整型;第二种是命令文本包含参数,SQL参数有两种用法,用法1是声明并实例化参数,然后设置参数的各种属性,最后向SQL命令的参数集合添加SQL参数;用法2是直接调用方法AddWithValue向SQL命令的参数集合添加参数的名称、值,但需注意的是由于HASHBYTES函数的参数为NVARCHAR,则SQL参数类型自动设为NVARCHAR,需手动转换成VARCHAR,使用SQL参数可以避免注入式攻击,安全性较高;也可以调用SQL连接的方法CreateCommand来创建SQL命令,然后调用SQL命令的方法ExecuteNonQuery来执行命令,向数据库写入数据,并返回受影响行数;
执行命令后可以通过语句try....catch...捕捉SQL异常。最终结果如下图正常运行。