防SQL注入和SqlDataAdapter、SqlDataReader基本使用

string sql = string.Format("select * from StudentOne where 学号=@学号");

string constr = ConfigurationManager.ConnectionStrings["Student"].ConnectionString;

using (SqlConnection conn = new SqlConnection(constr))

{

conn.Open();

SqlCommand cmd = new SqlCommand(sql, conn);

SqlParameter para = new SqlParameter("@学号",SqlDbType.Int);//设置参数

para.Value = 1;

cmd.Parameters.Add(para);

SqlDataReader reader = cmd.ExecuteReader();

if (reader.Read()) {

sb.Append(string.Format());//reader["列名"];

SqlDataReader 为一直和数据库连接。

SqlDataAdapter 从数据库中读到内存DataSet,然后与内存中的数据库读取数据;

string connstr=ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;

DataSet ds=new DataSet();

SqlConnection conn=new SqlConnection(connstr);

//这里注意的如果使用的是SqlReaderAdapter,不再调用conn.Open()方法;

SqlCommand cmd=new SqlCommand("SQL语句",connstr);

SqlReaderAdapter adapter =new SqlReaderAdapter(cmd);

adapter.Fill(ds,"TablerName");使用名字,

adapter.Fill(ds);

GridView1.DataSource = ds.Tables["Movies"];// 使用TableName进行指定

GridView1.DataBind();�                

GridView2.DataSource = ds.Tables[1];  // 使用inde进行指定�                

GridView2.DataBind();


DataSet,DataTable,DataReader,DataAdapter区别

1、DataSet是用来做连接sql的一种方法,意思是把数据库的副本存在应用程序里,相当于存在内存中的数据库,应用程序开始运行时,把数据库相关数据保存到DataSet.

2、DataTable表示内存中数据的一个表.常和DefaultView使用获取可能包括筛选视图或游标位置的表的自定义视图。

�3、DataReader对象是用来读取数据库的最简单方式,它只能读取,不能写入,并且是从头至尾往下读的,无法只读某条数据,但它占用内存小,速度快。

4、DataAdapter对象是用来读取数据库.可读取写入数据,某条数据超着强,但它占用内存比dataReader大,速度慢,一般和DataSet连用.

5、Dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表,DataSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接,DataReader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后由用户决定是否断开连接。

你可能感兴趣的:(防SQL注入和SqlDataAdapter、SqlDataReader基本使用)