1.ExcuteNonQuery

  执行非查询语句,返回受影响的行数。

            // 1.ExcuteNonQuery

             string sqlconn = "Data Source=wss;Initial Catalog=TextDB;User ID=sa;Password=w778764;Integrated Security=true";
SqlConnection conn = new SqlConnection(sqlconn);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into TB_USER(userID,password,LastTime,code) values ('fungame','131313',2005-05-23,56)";
int num = cmd.ExecuteNonQuery();
conn.Close();
conn.Dispose();
Console.Write("(共有{0}行受影响",num.ToString());
Console.ReadKey();

2.ExcuteScalar

  执行查询语句,返回一行一列的数据。

             .ExcuteScaler
string sqlconn= "data source = wss;uid = sa;pwd = w778764;Integrated Security = true;Initial Catalog = TextDB;";
string sql = "select * from TB_USER ";
using (SqlConnection conn = new SqlConnection (sqlconn))
{
using (SqlCommand cmd = new SqlCommand(sql,conn))
{
conn.Open();
string str = cmd.ExecuteScalar().ToString();
Console.WriteLine(str);
conn.Close();
}
}
Console.ReadKey();

3.参数化查询(防止SQL注入<1' or '1' = '1>)

             //3.防止SQL注入,参数化查询
Console.WriteLine("请输入用户名:");
string uid =Console.ReadLine();
Console.WriteLine("请输入密码");
string pwd = Console.ReadLine(); string sqlconn = "data source = wss;uid = @uid;pwd = @pwd;Integrated Security = true;Initial Catalog = TextDB;";
string sqldtr = "select count(*) from TB_USER;";
SqlParameter spuid = new SqlParameter(@uid, uid);//构建参数化对象
SqlParameter sppwd = new SqlParameter(@pwd, pwd); using (SqlConnection conn = new SqlConnection(sqlconn))
{
using (SqlCommand cmd = new SqlCommand(sqldtr,conn))
{ cmd.Parameters.Add(spuid);//将参数对象添加入执行列表
cmd.Parameters.Add(sppwd);
conn.Open();
int num =(int) cmd.ExecuteScalar();
conn.Close();
Console.Write("n={0}", num);
}
}

4.sqldatareader

  执行查询语句,将数据暂存到sqldatareader对象中,可以通过索引将数据逐行取出。

             .sqldatareader使用
string sqlstr = "data source = wss;uid =@uid;pwd =@pwd;Initial Catalog = TextDB;Integrated Security = true;";
string sql = "select * from TB_USER;";
string uid = "";
string pwd = "";
SqlParameter suid = new SqlParameter(@uid, uid);
SqlParameter spwd = new SqlParameter(@pwd, pwd);
using (SqlConnection conn = new SqlConnection (sqlstr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.Add(suid);
cmd.Parameters.Add(spwd);
conn.Open();
SqlDataReader sqlread = cmd.ExecuteReader();
using (sqlread)
{
while(sqlread.Read())
{
for (int i = ; i < sqlread.FieldCount; i++)
{
string data = sqlread[i].ToString();
Console.Write(data+"\t");
}
Console.WriteLine();
}
}
conn.Close();
}
}

5.SqlDataAdapter

  通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable,可以通过索引将单个的datatable数据绑定到数据容器中显示,如:datagridview。

  该实例中是建立了winform程序,设计视图中添加一个gridview和按钮控件,在按钮单击事件中添加如下代码。tips:girdview属性中的Anchor(锚;抛锚停泊)可以设定控件的四个方向是否跟随窗口大小改动而改动。

private void button1_Click(object sender, EventArgs e)
{
string sqlstr = "data source = wss;uid =@uid;pwd =@pwd;Initial Catalog = TextDB;Integrated Security = true;";
string sql = "select * from TB_USER;";
DataSet ds = new DataSet();
using (SqlDataAdapter sda = new SqlDataAdapter(sql,sqlstr))
{
sda.Fill(ds);
}
dataGridView1.DataSource = ds.Tables[];
}

如果这些内容帮助到你了,希望您给予支持 o(^▽^)o (支付宝)

(支付宝)

ADO.NET基础学习-----四种模型,防止SQL注入的更多相关文章

  1. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  2. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  3. sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)

    (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文 ...

  4. web安全之SQL注入---第四章 如何进行SQL注入攻击

    第四章 如何进行SQL注入攻击1.数字注入2.字符串注入    '#    '--

  5. 【2017-03-09】SQL Server 数据库基础、四种约束

    一.数据库和内存的区别 数据库:一些存储在硬盘上的数据文件 内存:计算机临时存储的一些数据 二.常用数据库 .Net - SQL Server PHP - MySql Java - Oreacl 三. ...

  6. 四 akka学习 四种多线程的解决方案

    http://blog.csdn.net/chenleixing/article/details/44044243 四种多线程的解决方案

  7. Oracle学习总结(6)—— SQL注入技术

    不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏性的漏洞之一. SQL注入基 ...

  8. JAVA jdbc(数据库连接池)学习笔记(二) SQL注入

    PS:今天偶然间发现了SQL的注入...所以就简单的脑补了一下,都是一些简单的例子...这篇写的不怎么样...由于自己没有进行很深的研究... 学习内容: 1.SQL注入的概念...   所谓SQL注 ...

  9. Mybatis基础学习(四)—关系映射

    一.模型分析 user和orders user---->orders 一个用户可以创建多个订单,一对多. orders--->user 一个订单只由一个用户创建,一对一.   orders ...

随机推荐

  1. python-正则基础

    正则表达式,说的简单些,就是一个匹配的功能,在python中,只要引用 re 模块,就能进行正则匹配操作 一.math匹配 先来看一个简单的例子 import re re.match(pattern, ...

  2. 【译】2分钟介绍Rx

    原文地址:https://medium.com/@andrestaltz/2-minute-introduction-to-rx-24c8ca793877 翻译去掉了一些口水话(⊙o⊙) 诸位应该已经 ...

  3. 系统优化怎么做-JVM优化之开篇

    大家好,这里是「聊聊系统优化 」,并在下列地址同步更新 博客园:http://www.cnblogs.com/changsong/ 知乎专栏:https://zhuanlan.zhihu.com/yo ...

  4. el表达式不显示值

    1.场景是自己搭建一个ssm的项目,登录页面跳转到首页,首页显示登录用户的信息,用request传递的值,用el表达式在jsp页面中没有显示 2.解决办法 早jsp的代码中添加头<%@ page ...

  5. redis主从架构的搭建

    本项目采用主从架构,一主两从一个哨兵.在x.x.x.69上部署主节点,在70上部署从节点1和哨兵节点,在71上部署从节点2. 准备: 1.首先上传redis文件到三台linux上,目录/home/sy ...

  6. ZooKeeper分布式

    1:zk的相关特性 1.一致性:数据一致性,数据按顺序分批入库. 2.原子性:事务要么都成功,要么都失败,不会局部化. 3.单一视图:客户端连接集群中的任一zk节点,数据都是一致的. 4.可靠性:每次 ...

  7. What is a schema in a MySQL database?

    摘自:https://www.quora.com/What-is-a-schema-in-a-MySQL-database What is schema? In MySQL, physically, ...

  8. 关于linux‘RedHat6.9在VMware虚拟机中的安装步骤

    redhat支持多种安装方式:光盘安装,硬盘安装和网络安装等,可以根据个人的实际情况来选择.我在这里选择的是光盘安装的方式安装RHEL6.9.(以下简称6.9) 1.首先准备好6.9的光盘镜像,在安装 ...

  9. wamp 的配置

    一 . 安装  二 . 配置 安装过后打开E:\wamp2\wamp\bin\apache\Apache2.2.21\conf\httpd.conf 寻找Directoy 为文件路径 里面的默认文件删 ...

  10. 第一代到第四代多址技术:从FDMA、TDMA、CDMA到OFDMA

    做通信物理层有关的内容研究已经有很长一段时间了.一直没有怎么总结,今天借着秋招,来总结一波. 本文所讲的是多址技术,日常常见的有时分多址.频分多址.码分多址,对应TDMA.FDMA.CDMA. 那么什 ...