数据访问类的封装与三大类
数据访问类的封装:
最简单的数据访问方法:
//创建数据库连接类对象
SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;password=123"); SqlCommand cmd = conn.CreateCommand();//根据连接去创建操作对象 cmd.CommandText = "select *From fruit";//写t-sql语句 conn.Open();//打开连接 SqlDataReader dr = cmd.ExecuteReader();//执行读取方法,读取数据,返回dr结果集 while(dr.Read()) //read()读取数据,但他一次只能读一行,所以用while循环语句 { Console.Write(dr["ids"].ToString()+" "+dr["name"].ToString()+"\n"); } conn.Close();//关闭连接 Console.ReadLine(); } } }
生成数据库中的信息
数据访问类分为三大类:连接类,实体类,数据访问类。
sqlconnection:数据库连接类
sqlcommand:数据库操作
sqldatareader:数据读取
dr.hasrows:是否有数据
dr.read:下移指针读取数据
dr.fieldcount:获取结果集列数
dr.getname:获取指定列的列名
查询语句:
1、连接类:
class lianjie { private string conntetion="server=.;database= ;uid=sa;pwd=789234178"; public string conn { get{ return conntetion } } }
2、实体类: private string code; 将属性进行封装
3、数据访问类:
class BrandDA { private SqlConnection conn; private SqlCommand cmd; public BrandDA() { conn=new SqlConnection(new lianjie().conn); cmd=conn.CreateCommand(); } public List<Brand>Select() { List<Brand>list=null; cmd.CommandText="select*from Brand"; conn.Open(); SqlDataReader dr=cmd.ExecuteReader(); if(dr.HasRows) { list=new List<Brand>(); while(dr.Read()) { Brand data=new Brand(); data.Brand_Code=dr["Brand_Code"].ToString(); data.Brand_Name=dr["Brand_Name"].ToString(); data.Brand_Memo=dr["Brand_Memo"].ToString(); data.Prod_Code=dr["Prod_Code"].ToString(); list.Add(data); } } } return list; } }
4.在winform中调方法:
List<Brand> list=new BrandDA().Select();
dataGridViewq.DataSource=list;
增加数据:
public void Insert(info data) { cmd.CommandText = "insert into info values(@Code,@Name,@Sex,@Nation,@Birthday)"; cmd.Parameters.Add("@Code", data.Code); cmd.Parameters.Add("@Name",data.Name); cmd.Parameters.Add("@Sex" ,data.Sex); cmd.Parameters.Add("@Nation", data.Nation); cmd.Parameters.Add("@birthday", data.Birthday); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); }
在页面调用方法:
info data = new info(); data.Code = TextBox1.Text; data.Name = TextBox2.Text; data.Sex =Convert.ToBoolean( TextBox3.Text); data.Nation = TextBox4.Text; data.Birthday =Convert.ToDateTime(TextBox5.Text); new infoDA().Insert(data);
删除数据:
public void delete(fruit data) { cmd.CommandText = "delete from fruit where ids=@Ids"; cmd.Parameters.Clear(); cmd.Parameters.Add("@Ids", data.Ids); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); }