C#SqlParameter的基本用法和好处

今天在看到朋友说起数据库sql注入问题说得比较复杂,就写了一个简单的列子供大家参考:

                 SqlConnection con = new SqlConnection(mySql);

                    //用SqlParameter可以防止Sql注入和一些二进制流的问题(如图片)
                    //SqlParameter sp = new SqlParameter("@username",SqlDbType.VarChar,20);  1:生产名字为@username的参数,2:对应数据库的类型,3:字符串的长度
                    //sp.Value = txtUserName.Text.Trim(); 给参数赋值
                    //com.Parameters.Add(sp); 添加到com对象

                    //可以简写成一下形势
                    SqlParameter[] sp = { new SqlParameter("@userName", txtUserName.Text.Trim()) ,
                                      new SqlParameter("@userPwd", txtUserPwd.Text.Trim())};
                    string str = "select * from UserLogin where [email protected] and [email protected]";  //不需要单引号
                    SqlCommand com = new SqlCommand(str, con);
                    com.Parameters.AddRange(sp);
                    con.Open();
                    SqlDataReader sdr = com.ExecuteReader();            

首次发帖,如有不当之处还望大牛们指点一二,谢谢。

C#SqlParameter的基本用法和好处

时间: 2024-08-29 10:58:41

C#SqlParameter的基本用法和好处的相关文章

SqlParameter的用法和好处

关于Sql注入的基本概念,相信不需要多说,大家都清楚,经典的注入语句是' or 1=1--单引号而截断字符串,"or 1=1"的永真式的出现使得表的一些信息被暴露出来,如果sql语句是select * from 的话,可能你整个表的信息都会被读取到,更严重的是,如果恶意使用都使用drop命令,那么可能你的整个数据库得全线崩溃.当然,现在重点不是讲sql注入的害处,而是说说如何最大限度的避免注入问题.sql注入的存在在最大危害,是sql的执行语句没有和控制语句分开,我们想要select一

反射的用法和好处

今天我们就来说一说反射(Reflection ), 反射是什么呢?反射是动态获取程序集的元数据(metadata)的一种技术.反射是.NetFramework类库提供的帮助类,动态加载dll实现程序的可配置可扩展. 首先我们来看一个简单的实现反射的例子,我们先创建整个框架 IDAL里面是一个接口,接口里面有一个Query方法, using System; namespace Reflect.IDAL { public interface IHelper { void Query(); } } 假

受康奈尔笔记法启发设计的程序员算法手写本

大多数程序员都习惯了平时在电脑上敲代码,但也有些情境要求我们手写代码,比如平时学习时做纸质笔记,完成老师布置的课程作业,同事之间交流讨论讲解思路,ACM比赛时手写分析算法,还有最常见的面试手写算法等.昨天看了康奈尔笔记法,觉得有点意思,于是想着把它应用到程序员的圈子里来,可以在面试等场合很好的向面试官阐述算法思路同时规范书写,希望能给大家带来一些帮助. 一.什么是康奈尔笔记法 图1.康奈尔笔记法 5R笔记法,又叫做康奈尔笔记法,是用产生这种笔记法的大学校名命名的.这一方法几乎适用于一切讲授或阅读

CozyRSS开发记录2-酷炫的皮肤库

CozyRSS开发记录2-酷炫的皮肤库 1.MaterialDesignToolkit 最开始微软推出Metro设计风格的时候,有人喜欢有人喷.紧接着,Ios也开始做扁平化的UI,这时候,扁平化已成为新的设计趋势.再往后,谷歌也推出了Material Design. MaterialDesignToolkit是一个帮助桌面程序快速应用Material Design的库,并且它是开源的,github地址为: https://github.com/ButchersBoy/MaterialDesign

kvo&kvc

Key Value Coding Key Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property accssor, 如我们有个property叫做foo, 我们可以foo直接访问它,同样我们也可以用KVC来完成[Object valueForKey:@“foo”], 有同学就会问了, 这样做有什么好处呢?主要的好处就是来减少我们的代码量. 下面我们来看看几个例子,就明白了KVO的用法和好处了,假设这

sql中case when的使用

运用场景:在表查询中总会遇到一些枚举定义的字段,如表:姓别(sex)字段,1为男,2为女.如果枚举过多很难记住对应的意思,都需要查看表注释,这样既麻烦有浪费时间.下面就距离对比case when的用法和好处. 1.普通查询 SELECT name,sex FROM person: 结果: 2.使用case when SELECT name,CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '其他' END FROM person;

JAVA泛型那些事儿

本篇内容源于本人一个好友sgpro提供的java学习例子,现拿出来给大家分享. 此例子非常直观的通过代码讲解了java泛型的用法和好处,是笔者一直珍藏的最好的泛型学习笔记. 一.面向过程的时代 我们先从求最大值开始讲起. 在面向过程的编程世界里,我们是这样求最大值的 1 package _00_OP; 2 /** 3 * 求若干个数的较大的一个 4 * 5 * 不使用重载,面向过程的年代. 6 * 7 * @author sgpro 8 * 9 */ 10 class MaxNumber { 1

【iOS】KVC 和 KVO 的使用场景

http://blog.csdn.net/chenglibin1988/article/details/38259865 Key Value Coding Key Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property accssor, 如我们有个property叫做foo, 我们可以foo直接访问它,同样我们也可以用KVC来完成[Object valueForKey:@“foo”], 有同学就会问

【转】 iOS KVO KVC

原文: http://www.cocoachina.com/industry/20140224/7866.html Key Value Coding Key Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property accssor, 如我们有个property叫做foo, 我们可以foo直接访问它,同样我们也 “” 阅读器 iOSKVOKVC 转自:Regrecall blogger Key Valu