C#中SqlParameter的作用与用法
在c#中执行sql语句时传递参数的小经验
1、直接写入法:
例如:
int Id =1;string Name="lui";cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')";
因为Id是数值,所以在传递的时候只需要在sql字符串中用"+Id+"即可实现,而 Name是字符串,所以在传递的时候还需要在"+Name+"两边各加一个单引号(')来 实现;
2、给命令对象添加参数法:
例如:
int Id =1;string Name="lui";cmd.CommandText="insert into TUserLogin values(@Id,@Name)";
//上条语句中直接在sql语句中写添加的参数名,不论参数类型都是如此.
SqlParameter para=new SqlParameter("@Id",SqlDbType.int,4);//生成一个名字为@Id的参数,必须以@开头表示是添加的参数,并设置其类型长度,类型长度与数据库中对应字段相同
para.Value=Id;//给参数赋值
cmd.Parameters.Add(para);//必须把参数变量添加到命令对象中去。
//以下类似
para=new SqlParameter("@Name",SqlDbType.VarChar,16);
para.Value=Name;
com.Parameters.Add(para);
...然后就可以执行数据库操作了。
声明:本帖转自 http://www.knowsky.com/339188.html
在此对本帖原创作者,致以最诚挚的谢意!
二、AddRange方法
1 2 |
|
显然,Add方法在添加多个SqlParameter时不方便,此时,可以采用AddRange方法。
下面是通过SqlParameter向数据库存储及读取图片的代码。
public int SavePhoto(string photourl)
{FileStreamfs = new FileStream(photourl,FileMode.Open, FileAccess.Read);//创建FileStream对象,用于向BinaryReader写入字节数据流BinaryReaderbr = new BinaryReader(fs);//创建BinaryReader对象,用于写入下面的byte数组byte[]photo = br.ReadBytes((int)fs.Length);//新建byte数组,写入br中的数据br.Close();//记得要关闭brfs.Close();//还有fsstring sql= "updateTable1 set photo = @photo where ID = '0'";SqlConnectionconn = new SqlConnection();conn.ConnectionString= "DataSource=.\\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\\Database.mdf;User Instance=true";SqlCommandcmd = new SqlCommand(sql,conn);SqlParametersp = 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= "selectphoto from Table1 where ID = '0'";SqlConnectionconn = new SqlConnection();conn.ConnectionString= "DataSource=.\\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\\Database.mdf;User Instance=true";SqlCommandcmd = new SqlCommand(sql,conn);try{conn.Open();SqlDataReaderreader = cmd.ExecuteReader();//采用SqlDataReader的方法来读取数据if (reader.Read()){byte[]photo = reader[0] as byte[];//将第0列的数据写入byte数组FileStreamfs = new FileStream(url,FileMode.CreateNew);创建FileStream对象,用于写入字节数据流fs.Write(photo,0,photo.Length);//将byte数组中的数据写入fsfs.Close();//关闭fs}reader.Close();//关闭reader}catch (Exceptionex){throw;}finally{conn.Close();} }}
C#中SqlParameter的作用与用法相关推荐
- python 中/ 与 //的作用、用法
python 中/ 与 //的作用.用法 原创蓝莓·山药 最后发布于2019-06-21 09:27:54 阅读数 3591 收藏 展开 python语法中, / 是除法,例如:2/3 = 0.66 ...
- MySQL数据类型中DECIMAL的作用和用法
在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮 ...
- Vue 中的 v-cloak 作用及用法
v-cloak 的作用和用法 用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Must ...
- 深入理解C# 中 “$” 符号的作用以及用法
前言:$是c# 6.0 的语言特性,功能类似string.format(),更方便的地方在于不要像format一样使用索引,可以直接使用变量.表达式或者方法的执行. 文章目录 一.C#中`$`的作用 ...
- SpringMVC中 -- @RequestMapping的作用及用法
一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...
- springMVC中的ModelMap作用及用法
概念 ModelMap的作用: ModelMap对象主要用于传递控制方法传递数据到结果页面.类似于request的setAttribute方法的作用. 所以我们要想在jsp页面获取数据,只要将数据放到 ...
- SqlParameter的作用与用法
因为通过SQL语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操作,针对SqlParameter的方式我们同 ...
- Vue 中的 v-cloak 作用及用法-vue页面加载时会闪烁
用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕 ...
- Java中volatile的作用以及用法
volatile让变量每次在使用的时候,都从主存中取.而不是从各个线程的"工作内存". volatile具有synchronized关键字的"可见性",但是没有 ...
- rono在oracle的作用_Oracle中存储过程的作用和用法
存储过程是Oracle开发者在数据转换或查询报表时经常使用的方式之一.它就是想编程语言一样一旦运行成功,就可以被用户随时调用,这种方式极大的节省了用户的时间,也提高了程序的执行效率.存储过程在数据库开 ...
最新文章
- idea maven打jar包_Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
- 10g TNS 13541 监听错误 tnsping可以但是conn system/manager@mult1.net 报错
- Redis进阶实践之二如何在Linux系统上安装安装Redis
- 编译Bitcoin BCH configure: error: libdb_cxx headers missing ,终于解决了
- Ubuntu下QT的安装详细教程
- C# 二维码的生成 Open Source QRCode Library
- 关于https工程的nginx简单配置
- Python批量替换掉某些值为新的值
- SQL Server数据库纵向转横向
- Android更改桌面应用程序launcher的两种方式
- scanf()和getchar() 使用
- ActiveMQ-1 安装以及WebUI的配置
- 【数据库】Hive SQL 正则表达式进阶二(regexp_extract函数进阶使用)
- 【https】 1 HTTP Security (bb102-1)
- STA | 12. 时序签核方法学及实战经验
- 点击按钮下载Excel表格
- linux 之 Deamon进程
- Linux 文件系统(目录介绍)
- 出现“你的Windows许可证即将过期”提示
- ubuntu kylin mysql_Ubuntu Kylin 安装和配置mysql
热门文章
- springboot基于web的游泳馆信息管理系统毕业设计源码281444
- net 4.6.2安装不成功_源泉设计安装不成功的问题之解决办法
- 【蓝桥杯嵌入式】关于CT117E下载程序出问题解决方案(含keil mdk4和keil mdk5移植)
- 写入img虚拟软盘镜像_codestorm_新浪博客
- 计算机网络自顶向下第六章,计算机网络 自顶向下方法 第六章(英文版).ppt
- 转速、电流双闭环直流调速系统调节器参数设计
- QCC300x 芯片ota升级PSKey 操作方法
- python 希尔伯特变换_信号处理——Hilbert变换及谱分析
- 三菱FX系列PLC教程
- vb caption 换行