ASP.NET 数据库原理

SQL 2000 数据库连接方式:
 
连接方式
非连接方式
适用范围
小型数据库
大型数据库
原因
对服务器数据库直接操作
对本地数据集操作
访问频度
频繁访问服务器
需要时手动提交
DataConnection
DataCommand
DataSet
DataAdapter
DataReader
DataConnection:连接数据库;
DataCommand:执行SQL语句;
DataSet:数据集容器;一个DataSet好比一个“书包”里面可以放很多本“书(数据集)”;
DataReader:读取数据集;
DataAdapter:(1)连接数据库(2)执行SQL语句(3)转交填充DataSet(4)提交更新服务器数据库
连接方式
解释:Client向Server发送DataConnection取得连接
      Server根据Client的DataCommand(Select语句)生成“数据集”
      该“数据集”由DataReader读取送给DataGrid/DataList/ListView...
连接方式浏览:
   private void selectcon() (只适用于WebApplication不适用于WindowsApplication)
   {
    SqlConnection con=new SqlConnection("server=(local);uid=sa;password=;database=数据库名");   
    SqlCommand com=new SqlCommand("select 列名 from 表名 ",con);
    con.Open();
    SqlDataReader readdata=com.ExecuteReader();   
    if(readdata.Read())
    {    
     DataGrid1.DataSource=readdata;
     DataGrid1.DataBind();
     readdata.Close();
    }
}
连接方式插入:
   private void insertcon()
   {
    SqlConnection con=new SqlConnection("server=(local);uid=sa;password=;database=数据库名");
    SqlCommand com=new SqlCommand("INSERT INTO myclass Values(@列名1,@列名2,...,@列名n)",con);
    com.Parameters.Add("@列名1",SqlDbType.数据类型,数据长度);
    com.Parameters.Add("@列名2",SqlDbType.数据类型,数据长度);
   ...
    com.Parameters.Add("@列名n",SqlDbType.数据类型,数据长度);
    con.Open();
    com.Parameters["@列名1"].Value=输入控件.Text;
    com.Parameters["@列名2"].Value=输入控件.Text;
   ...
    com.Parameters["@列名n"].Value=输入控件.Text;
    com.ExecuteNonQuery();
    con.Close();
   }
删除:
   SqlConnection con = new SqlConnection("server=local);database=northwind;Uid=strong;Pwd=strong;");
    con.Open();
   SqlCommand com = new SqlCommand("delete from Products where ProductID="+Request.QueryString["id"]+"", con);       
   com.ExecuteNonQuery();
   con.Close();
非连接方式:
解释:Client向Server发送DataAdapter(1)取得连接
      Client在本地DataAdapter(2)(Select语句)生成“数据集”
      该“数据集”由DataAdapter(3)送入本地DataSet
      最后由Client的需要由DataAdapter(4)手动提交给Server
非连接方式浏览:
   private void selectuncon()
   {
    SqlDataAdapter da=new SqlDataAdapter("select 列名 from 表名","server=(local);uid=sa;password=;database=数据库名");
    DataSet ds=new DataSet(); //可以装数据集的盒子(书包)
    da.Fill(ds,"aaa"); //给临时的数据集(书)一个(书)名随便aaa(注意不是表名)
    dataGrid1.DataSource=ds.Tables["aaa"];
    }
非连接方式插入:
private void insertuncon()
   {   
    SqlDataAdapter da=new SqlDataAdapter("select * from myclass","server=(local);uid=sa;password=;database=数据库名");
    DataSet ds=new DataSet();
    da.Fill(ds,"aaa");            
    DataRow dr;
    dr=ds.Tables["aaa"].NewRow();
    dr[0]=输入控件.Text;
    dr[1]=输入控件.Text;
   ...
    dr[n]=输入控件.Text;
    ds.Tables["aaa"].Rows.Add(dr);
    dataGrid2.DataSource=ds.Tables["aaa"]; 
    SqlCommandBuilder cb=new SqlCommandBuilder(da);
    da.Update(ds,"aaa");  
   }

你可能感兴趣的:(asp.net)