string sql = string.Format("select * from StudentOne where 學號=@學號");
string constr = ConfigurationManager.ConnectionStrings["Student"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter para = new SqlParameter("@學號",SqlDbType.Int);//設置參數
para.Value = 1;
cmd.Parameters.Add(para);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read()) {
sb.Append(string.Format());//reader["列名"];
}
}
SqlDataReader 為一直和數據庫連接。
SqlDataAdapter 從數據庫中讀到內存DataSet,然后與內存中的數據庫讀取數據;
string connstr=ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;
DataSet ds=new DataSet();
SqlConnection conn=new SqlConnection(connstr);
//這里注意的如果使用的是SqlReaderAdapter,不再調用conn.Open()方法;
SqlCommand cmd=new SqlCommand("SQL語句",connstr);
SqlReaderAdapter adapter =new SqlReaderAdapter(cmd);
adapter.Fill(ds,"TablerName");使用名字,
adapter.Fill(ds);
GridView1.DataSource = ds.Tables["Movies"];// 使用TableName進行指定
GridView1.DataBind();?? ? ? ? ? ? ? ??
GridView2.DataSource = ds.Tables[1];? // 使用inde進行指定?? ? ? ? ? ? ? ??
GridView2.DataBind();
DataSet,DataTable,DataReader,DataAdapter區別
1、DataSet是用來做連接sql的一種方法,意思是把數據庫的副本存在應用程序里,相當于存在內存中的數據庫,應用程序開始運行時,把數據庫相關數據保存到DataSet.
2、DataTable表示內存中數據的一個表.常和DefaultView使用獲取可能包括篩選視圖或游標位置的表的自定義視圖。
?3、DataReader對象是用來讀取數據庫的最簡單方式,它只能讀取,不能寫入,并且是從頭至尾往下讀的,無法只讀某條數據,但它占用內存小,速度快。
4、DataAdapter對象是用來讀取數據庫.可讀取寫入數據,某條數據超著強,但它占用內存比dataReader大,速度慢,一般和DataSet連用.
5、Dataset表示一個數據集,是數據在內存中的緩存。 可以包括多個表,DataSet 連接數據庫時是非面向連接的。把表全部讀到Sql中的緩沖池,并斷開于數據庫的連接,DataReader 連接數據庫時是面向連接的。讀表時,只能向前讀取,讀完數據后由用戶決定是否斷開連接。