C# ADO连接数据库
C#中用ADO连接数据库一般是自己先新建一个类,声明一个SqlConnection变量(用于连接数据库),把对数据库的操作写成方法放在类中。
下面是我自己写的一个数据库类。
写这个类的时候要加入using System.Data.SqlClient;(因为引用了sql操作的一些类)
1 public class DataBase 2 { 3 SqlConnection conn; 4 public DataBase(string str) 5 { 6 this.conn = new SqlConnection(str); 7 } 8 public void open() 9 { 10 if (conn.State == ConnectionState.Closed) 11 { 12 conn.Open(); 13 } 14 } 15 public void close() 16 { 17 if (conn.State == ConnectionState.Open) 18 { 19 conn.Close(); 20 } 21 } 22 public DataTable query_dt(string sql) 23 { 24 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); 25 DataTable dt=new DataTable(); 26 sda.Fill(dt); 27 return dt; 28 } 29 public DataSet query_ds(string sql) 30 { 31 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); 32 DataSet ds = new DataSet(); 33 sda.Fill(ds); 34 return ds; 35 } 36 public int update(string sql) 37 { 38 open(); 39 SqlCommand sc = new SqlCommand(); 40 sc.CommandText = sql; 41 sc.CommandType = CommandType.Text; 42 sc.Connection = conn; 43 int x = sc.ExecuteNonQuery(); 44 close(); 45 return x; 46 } 47 }
先介绍数据库操作的一些类吧。
首先是SqlConnection,该类用于与数据库建立连接,与数据库建立连接的时候,只要实例化一个SqlConnection对象,代码如下:
SqlConnection conn= new SqlConnection("server=;database=vote;uid=sa;pwd=czjszx");
然后使用该类的Open()方法,就能和数据库建立连接,使用完数据库,还要使用该类的Close()方法关闭数据库。
接下来是SqlCommand类,使用该类要设置数据库接口。例如我们先实例化一个SqlCommand对象,然后设置它的数据库接口。代码如下:
SqlCommand sc=new SqlCommand(); sc.Connection=conn;//conn为SqlConnection类
设置好数据库接口,接下来就是设置你要对数据库执行的sql语句。代码如下:
sc.CommandText = sql;//sql为string类型 sc.CommandType = CommandType.Text;//命令的种类
然后就是执行命令了。要先打开数据库,执行完要关闭数据库。
下面介绍两种执行方式,还有其他方式。
int x=sc.ExecuteNonQuery()//x 为执行所影响的行数 第一种
SqlDataReader sdr=sc.ExecuteReader(); // 第二种
上面的执行结果返回了一个SqldDataReader对象,可以让我们读取查询结果。
用法如下:
string str=""; while(sdr.Read()) { str+=sdr["columns1"]+sdr[“columns2”]; }
这样读取是逐行读取,SqldDataReader的Read()方法会自动地移到下一行。columns1和columns2是列名,也可以用下标0,1访问对应值。
最后就是SqlDataAdapter类,使用该类要设置好数据库接口,要执行的sql语句,然后执行Fill() ,就自动执行了,不用自己打开数据库,执行完也会自动关闭数据库。
SqlDataAdapter sda = new SqlDataAdapter(sql, conn); // 还可以这么实例化 SqlDataAdapter sda = new SqlDataAdapter(sc); sc是 // 一个已经设置好数据库接口和执行语句的sqlommand对象 DataTable dt=new DataTable(); sda.Fill(dt);
上面我使用DataTable(就是一张表)来储存执行结果。
DataTable的用法就不说了。