一、命名空间:
System.Data;
System.Data.SqlClient;
二、SqlConnection类:创建与数据库的连接
server=.;database=mydb;uid=sa;pwd=sa
实例化:
string str = "server=.;database=mydb;uid=sa;pwd=sa";
SqlConnection conn = new SqlConnection(str);
方法:
Open();
Close();
SqlCommand类:用来执行Sql语句的命令对象
三、 实例化:
SqlCommand cmd = conn.CreateCommand();
属性:
CommandType:Text-要执行的是SQL语句,StoredProcedure-要执行的是存储过程
CommandText:要执行的SQL语句或存储过程
Parameters:用来操作SQL语句的参数@..
方法:
ExecuteNonQuery():用来执行增删改的方法
ExecuteReader():用来执行查询的方法,返回SqlDataReader
执行插入的例子:
string str = "server=.;database=mydb;uid=sa;pwd=123";
SqlConnection conn = new SqlConnection(str);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into info values(@code,@name,@sex,@nation,@birthday)";
cmd.Parameters.AddWithValue("@code","h004");
cmd.Parameters.AddWithValue("@name","田七");
cmd.Parameters.AddWithValue("@sex",true);
cmd.Parameters.AddWithValue("@nation","n003");
cmd.Parameters.AddWithValue("@birthday","1999-9-9");
conn.Open();
cmd.ExecuteNonQuery();
//cmd.ExecuteReader();
conn.Close();
四、SqlDataReader:读取器对象,与Java的ResultSet很像
SqlDataReader不能直接new出来。它的生只有一种方法--SqlDataReader dr = cmd.ExecuteReader();
常用读取语法
while(dr.Read())
{
}
方法:
Read():(返回bool,读取成功返回true)把当前的记录读取到SqlDataReader中来。数据库中的记录指针移到下一条去。
属性:
HasRows:(返回bool,有记录返回true)探测查询是否检索出记录。
读取当前SqlDataReader中指定列的数据:dr["列名"];
查询的例子:
string str = "server=.;database=mydb;uid=sa;pwd=123";
SqlConnection conn = new SqlConnection(str);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from info";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr["Name"].ToString()+dr["Sex"].ToString()+dr["Nation"].ToString()+dr["Birthday"].ToString());
}
conn.Close();
封装实体类:
每个表对应一个类,表中的每列对应类中的一个成员变量。该类的每个对象对应表中的一条记录。
数据访问类:
对每个表对行C(Create)R(Retrive)U(Update)D(Delete)操作
易维护,重用,易读性强