如何不使用SqlDataSource ,自行撰寫sql連線並且綁定到GridView上。
無論是在mySql 或是 MsSql 該如何利用.cs 去自行撰寫sql connection 以及sql command 並且綁定到Gridview上。
Step 1:首先拉出一個GridView,並且檢視原始碼。
Step 2:設定Sql連線字串,可以發現其實無論是mySql 或是 msSql 都大同小異
//MySql connection
MySqlConnection conn = new MySqlConnection("Data Source=IP;Initial Catalog=DB;User ID=xxx;Password=xxx");
//MsSql connection
SqlConnection conn = new SqlConnection("Data Source=IP;Initial Catalog=DB;User ID=xxx;Password=xxx");
conn.Open();
Step3:寫sql Command
//MySql
MySqlCommand cmd = new MySqlCommand("Select odh_no as 訂單編號,odh_cm as 客戶編號From odh where To_JEAN = 'T'", conn);
//MsSql
SqlCommand cmd = new SqlCommand("Select odh_no as 訂單編號,odh_cm as 客戶編號From odh where To_JEAN = 'T'", conn);
這邊的 as ...則是因為待會我們要綁定 GridView時的表格欄位名稱,若沒有寫as ...則會直接呈現的是原始在資料庫的資料欄位名稱
Step4:利用sqlDataAdapter 填入
DataAdapter 類別 主要是用來將資料填入DataSet 類別或DataTable 類別,然後更新資料來源,使用Fill方法載入。
DataTable dataTable = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dataTable);
GridView1.DataSource = dataTable; //告訴GridView資料來源為誰
GridView1.DataBind();//綁定
conn.Close(); //連線關閉
※若為insert update delete這種會動用到資料庫的指令,請記得加入Transcarion 資料庫交易事件
SqlTransaction msTrans = new SqlTransaction ();
msTrans = conn.BeginTransaction();
cmd.Transaction = msTrans;
cmd.ExecuteNonQuery();//執行sqlString
msTrans.Commit();
Q&A
Q1.若我想要gridView 可能按了一個button 後,重新載入一次該怎麼做呢??
A1.使用GridView1.DataBind();再次綁定