C#连接数据库的方法

2019-12-26 13:37:49丽君

 

图 1   数据库T_Student表

为了避免数据库注入漏洞,微软设置有查询参数,举例如下:

cmd.CommandText =”select * from T_Student where Age<@Age”;

cmd.Parameters.Add(new SqlParameter(“@Age”,19));

这里把@Age设置为查询参数,但是@参数不能用了替换表名、字段名、select之类的关键字等。

    SqlDataReader是和连接相关的,SqlDataReader中的查询结果并不是放在程序中的,而是放在数据库服务器中,SqlDataReader只是相当于一个游标,指到哪里读到哪里。

    ADO.NET提供了数据集机制,DataSet,存在本地内存,其包含若干DataTable,DataTable包含若干行DataRow。使用方法:
 

  1. DataSet dataset=new DataSet();  SqlDataAdapter adapter=new SqlDataAdapter(cmd); 
  2. adapter.Fill(dataset); 
?

SqlDataAdapter是一个帮我们把SqlCommand查询结果填充到DataSet中的类,DataSet相当于本地的list集合(小数据库)。遍历方法如下:
 

  1. DataTable table=dataset.Tables[0];//一般情况下只有一个Tables,当同时执行多个select语句时有多个Tables。   
  2. DataRowCollection rows=table.Rows;  for(int i=0;i<rows.Count;i++) 
  3. {    DataRow row=rows[i]; 
  4. int age=(int)row[“Age”];//遍历年龄  } 
?

基本上所有的步骤都是:打开链接--创建命令--执行--处理执行结果。所以可以写个公共类自己用,避免重复代码,详细代码如下:
 

  1. public static class SqlHelper    { 
  2.     public static readonly string connstr =        ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; 
  3.     public static SqlConnection OpenConnection()//建立连接      {