在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

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)
{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的作用与用法相关推荐

  1. python 中/ 与 //的作用、用法

    python 中/ 与 //的作用.用法 原创蓝莓·山药 最后发布于2019-06-21 09:27:54 阅读数 3591  收藏 展开 python语法中, / 是除法,例如:2/3 = 0.66 ...

  2. MySQL数据类型中DECIMAL的作用和用法

    在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮 ...

  3. Vue 中的 v-cloak 作用及用法

    v-cloak 的作用和用法 用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Must ...

  4. 深入理解C# 中 “$” 符号的作用以及用法

    前言:$是c# 6.0 的语言特性,功能类似string.format(),更方便的地方在于不要像format一样使用索引,可以直接使用变量.表达式或者方法的执行. 文章目录 一.C#中`$`的作用 ...

  5. SpringMVC中 -- @RequestMapping的作用及用法

    一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...

  6. springMVC中的ModelMap作用及用法

    概念 ModelMap的作用: ModelMap对象主要用于传递控制方法传递数据到结果页面.类似于request的setAttribute方法的作用. 所以我们要想在jsp页面获取数据,只要将数据放到 ...

  7. SqlParameter的作用与用法

    因为通过SQL语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操作,针对SqlParameter的方式我们同 ...

  8. Vue 中的 v-cloak 作用及用法-vue页面加载时会闪烁

    用法: 这个指令保持在元素上直到关联实例结束编译.和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕 ...

  9. Java中volatile的作用以及用法

    volatile让变量每次在使用的时候,都从主存中取.而不是从各个线程的"工作内存". volatile具有synchronized关键字的"可见性",但是没有 ...

  10. rono在oracle的作用_Oracle中存储过程的作用和用法

    存储过程是Oracle开发者在数据转换或查询报表时经常使用的方式之一.它就是想编程语言一样一旦运行成功,就可以被用户随时调用,这种方式极大的节省了用户的时间,也提高了程序的执行效率.存储过程在数据库开 ...

最新文章

  1. idea maven打jar包_Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
  2. 10g TNS 13541 监听错误 tnsping可以但是conn system/manager@mult1.net 报错
  3. Redis进阶实践之二如何在Linux系统上安装安装Redis
  4. 编译Bitcoin BCH configure: error: libdb_cxx headers missing ,终于解决了
  5. Ubuntu下QT的安装详细教程
  6. C# 二维码的生成 Open Source QRCode Library
  7. 关于https工程的nginx简单配置
  8. Python批量替换掉某些值为新的值
  9. SQL Server数据库纵向转横向
  10. Android更改桌面应用程序launcher的两种方式
  11. scanf()和getchar() 使用
  12. ActiveMQ-1 安装以及WebUI的配置
  13. 【数据库】Hive SQL 正则表达式进阶二(regexp_extract函数进阶使用)
  14. 【https】 1 HTTP Security (bb102-1)
  15. STA | 12. 时序签核方法学及实战经验
  16. 点击按钮下载Excel表格
  17. linux 之 Deamon进程
  18. Linux 文件系统(目录介绍)
  19. 出现“你的Windows许可证即将过期”提示
  20. ubuntu kylin mysql_Ubuntu Kylin 安装和配置mysql

热门文章

  1. springboot基于web的游泳馆信息管理系统毕业设计源码281444
  2. net 4.6.2安装不成功_源泉设计安装不成功的问题之解决办法
  3. 【蓝桥杯嵌入式】关于CT117E下载程序出问题解决方案(含keil mdk4和keil mdk5移植)
  4. 写入img虚拟软盘镜像_codestorm_新浪博客
  5. 计算机网络自顶向下第六章,计算机网络 自顶向下方法 第六章(英文版).ppt
  6. 转速、电流双闭环直流调速系统调节器参数设计
  7. QCC300x 芯片ota升级PSKey 操作方法
  8. python 希尔伯特变换_信号处理——Hilbert变换及谱分析
  9. 三菱FX系列PLC教程
  10. vb caption 换行