没有合适的资源?快使用搜索试试~ 我知道了~
详解C#中SqlParameter的作用与用法
13 下载量 58 浏览量
2020-08-31
21:20:38
上传
评论
收藏 48KB PDF 举报
温馨提示
试读
2页
本篇文章主要介绍了C#中SqlParameter的作用与用法,因为通过SQL语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操作。
资源推荐
资源详情
资源评论
详解详解C#中中SqlParameter的作用与用法的作用与用法
本篇文章主要介绍了C#中SqlParameter的作用与用法,因为通过SQL语句的方式,有时候存在脚本注入的危险,
所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操作。
一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有
单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。
string sql
= "update
Table1 set name = 'Pudding' where ID = '1'";//未采用SqlParameter
SqlConnection
conn = new SqlConnection();
conn.ConnectionString
= "Data
Source=.\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\Database.mdf;User Instance=true";//连接字符串与数据库有关
SqlCommand
cmd = new SqlCommand(sql,
conn);
try
{
conn.Open();
return(cmd.ExecuteNonQuery());
}
catch (Exception)
{
return -1;
throw;
}
finally
{
conn.Close();
}
上述代码未采用SqlParameter,除了存在安全性问题,该方法还无法解决二进制流的更新,如图片文件。通过使用
SqlParameter可以解决上述问题,常见的使用方法有两种,Add方法和AddRange方法。
一、一、Add方法方法
SqlParameter
sp = new SqlParameter("@name","Pudding");
cmd.Parameters.Add(sp);
sp
= new SqlParameter("@ID","1");
cmd.Parameters.Add(sp);
该方法每次只能添加一个SqlParameter。上述代码的功能是将ID值等于1的字段name更新为Pudding(人名)。
二、二、AddRange方法方法
SqlParameter[]
paras = new SqlParameter[]
{ new SqlParameter("@name","Pudding"),new SqlParameter("@ID","1")
};
cmd.Parameters.AddRange(paras);
显然,Add方法在添加多个SqlParameter时不方便,此时,可以采用AddRange方法。
下面是通过SqlParameter向数据库存储及读取图片的代码。
public int SavePhoto(string photourl)
{
FileStream
fs = new FileStream(photourl,
FileMode.Open, FileAccess.Read);//创建FileStream对象,用于向BinaryReader写入字节数据流
BinaryReader
br = new BinaryReader(fs);//创建BinaryReader对象,用于写入下面的byte数组
byte[]
photo = br.ReadBytes((int)fs.Length);//新建byte数组,写入br中的数据
br.Close();//记得要关闭br
fs.Close();//还有fs
string sql
= "update
Table1 set photo = @photo where ID = '0'";
SqlConnection
conn = new SqlConnection();
conn.ConnectionString
资源评论
weixin_38733885
- 粉丝: 8
- 资源: 941
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功