如何不使用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();再次绑定
翻译自dotblogs.com.tw