SqlParameter的作用与用法
有时候为图方便,会直接用sqlhelper文件进行相关操作,会出现如下的类:
- public static object ExecuteScalar(string sqlStr, params SqlParameter[] parameters)
- {
- using (SqlConnection conn = new SqlConnection(connStr))
- {
- conn.Open();
- using (SqlCommand cmd = conn.CreateCommand())
- {
- cmd.CommandText = sqlStr;
- cmd.Parameters.AddRange(parameters);
- return cmd.ExecuteScalar();
- }
- }
- }
以前都是把 params SqlParameter[] parameters 修改后操作,发现有时候不方便。还是人家原来的好,比较灵活。
调用方法一般有如下两种:
一、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);
- 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 = "Data Source=.\\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\\Database.mdf;User Instance=true";
- SqlCommand cmd = new SqlCommand(sql, conn);
- SqlParameter sp = new SqlParameter("@photo", photo);
- cmd.Parameters.Add(sp);
- try
- {
- conn.Open();
- return (cmd.ExecuteNonQuery());
- }
- catch (Exception)
- {
- return -1;
- throw;
- }
- finally
- {
- conn.Close();
- }
- }
- public void ReadPhoto(string url)
- {
- string sql = "select photo from Table1 where ID = '0'";
- 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();
- SqlDataReader reader = cmd.ExecuteReader();//采用SqlDataReader的方法来读取数据
- if (reader.Read())
- {
- byte[] photo = reader[0] as byte[];//将第0列的数据写入byte数组
- FileStream fs = new FileStream(url,FileMode.CreateNew);创建FileStream对象,用于写入字节数据流
- fs.Write(photo,0,photo.Length);//将byte数组中的数据写入fs
- fs.Close();//关闭fs
- }
- reader.Close();//关闭reader
- }
- catch (Exception ex)
- {
- throw;
- }
- finally
- {
- conn.Close();
- }
- }
- }
注:参考了园子里某位朋友的博客。
SqlParameter的作用与用法的更多相关文章
- serialVersionUID, ObjectInputStream与ObjectOutputStream类,Serializable接口,serialVersionUID的作用和用法
ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入 Ser ...
- Oracle函数over(),rank()over()作用及用法--分区(分组)求和& 不连续/连续排名
(1) 函数: over()的作用及用法: -- 分区(分组)求和. RANK ( ) OVER ( [query_partition_clause] order_by_clause )D ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- JSP九大内置对象的作用和用法总结?
JSP九大内置对象的作用和用法总结? 1.request对象javax.servlet.http.HttpServletRequest request对象代表了客户端的请求信息,主要用于接受通过HTT ...
- (转载)MySQL数据类型中DECIMAL的作用和用法
(转载)http://database.51cto.com/art/201005/201651.htm 在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都 ...
- PreTranslateMessage作用和用法
PreTranslateMessage作用和用法 PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗体的消息都要通过这里,比較经常使用, ...
- ViewHolder的作用和用法
一直都看别人用ViewHolder,自己也用过,却不知道它的作用是什么?但知道肯定很有用,而且现在android studio应该有直接生产Viewholder的插件, 不过博主我是个新手,就没尝试去 ...
- Oracle分析函数及常用函数: over(),rank()over()作用及用法--分区(分组)求和& 不连续/连续排名
(1) 函数: over()的作用及用法: -- 分区(分组)求和. sum() over( partition by column1 order by column2 )主要用来对某个字 ...
- og标签对SEO的作用及用法
meta property=og标签对SEO的作用及用法,如果你仔细观察会发现本站点<head>代码中有一段:"property="og:image"这段代码 ...
- PHP strip_tags() 函数的作用和用法
strip_tags()函数可以轻松实现从字符串中去除 HTML 和 PHP 标记. 使用方法: trip_tags ( string $str [, string $allowable_tags ] ...
随机推荐
- 最大公约数与最小公倍数_c/c++
gcd:greatest common divisor,最大公约数 欧几里得算法,也就是辗转相除法.公式:gcd(a, b) = gcd(b, a % b) 推论:gcd(b, a) == g ...
- 数据库结构差异比较-SqlServer
/****** Object: StoredProcedure [dbo].[p_comparestructure_2005] Script Date: 2022/10/8 10:00:20 **** ...
- 2022安洵杯pwn-babyarm
首先就是绕过一个简单的变表base64的加密key 然后就是一个类似ret2libc的利用方式,不过没有直接控制r0的gadget 使用的是arm32中万能的gadget from pwn impor ...
- 程序猿、IT男、屌丝
一个学计算机的,做了金融圈的朋友,对另外做硬件的朋友,如是说: [据说你写的程序代码,必须很浪的计算机才能运行] [ 以后还用写程序吗.不是ChatGPT直接可以出源代码吗?] 程序猿.IT男.屌丝. ...
- 韦东山005_ARM裸机1期加强版
005_ARM裸机1期加强版(又叫新1期,151节,23节免费,已完结)\新1期视频(151节,23节免费) 第006课开发板熟悉与体验(6节,免费) 第001节_开发板部件介绍与串口连接(免费) 如 ...
- OSI七层模型、TCP协议
1. 网络资产搜索引擎 2. 网站存储用户密码进行MD5加密 3. 小型Web管理系统账号密码使用base64进行加密 4. IP地址:网络位+主机位 5. 局域网中没有DHCP服务主机获取的地址范围 ...
- pragma pack(字节对齐用法)---C语言
#pragma pack(4) typedef struct { char buf[3]; word a; }kk; #pragma pack() 对齐的原则是min(sizeof(word ),4) ...
- Java笔记第十二弹
Lambda表达式的标准格式 三要素:形式参数.箭头.代码块 格式:(形式参数)->(代码块) 形式参数:如果有多个参数,参数之间用逗号隔开:如果没有参数,留空即可 ->代表指向动作 La ...
- 树状分级框架UI实例
树状分级框架UI实例:(内容参考https://zhuanlan.zhihu.com/p/108485875) #coding:utf8 #!/usr/bin/env python #@author: ...
- Asp-Net-Core开发笔记:使用RateLimit中间件实现接口限流
前言 最近一直在忙(2月份沉迷steam,3月开始工作各种忙),好久没更新博客了,不过也积累了一些,忙里偷闲记录一下. 这个需求是这样的,我之前做了个工单系统,现在要对登录.注册.发起工单这些功能做限 ...