[勘誤]上集第十章 完全手寫 GridView各種功能 (DataSet版),方法A

非常感謝 讀者 aporuevolej
他在測試的過程中發現這個錯誤

範例 Default_2__DataSet_Manula.aspx
在GridView的更新(RowUpdating)與刪除(RowDeleteing)兩大事件中
其中的 [方法A]....最後仍需手動關閉資料庫的連結,例如 Connection.Close()

 

書本上集  第十章

完全手寫 GridView各種功能 (DataSet版)

範例 Default_2__DataSet_Manula.aspx

 

在GridView的更新(RowUpdating)與刪除(RowDeleteing)兩大事件中

我用了兩種方法來示範

 

其中的 [方法A]

源自微軟 MSDN文件 -- http://msdn.microsoft.com/zh-tw/library/system.data.sqlclient.sqldataadapter.deletecommand%28v=vs.80%29.aspx

直接呼叫 .ExecuteNonQuery()方法

 

來執行新增、刪除、修改的 SQL Command

 

最後仍需手動關閉資料庫的連結,例如 Connection.Close()

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

非常感謝  讀者 aporuevolej

他在測試的過程中發現這個錯誤,他發現的成果如下:

=======================================

主旨: 作者您好,想請問關於撰寫Dataset Insert功能的問題

以下是程式碼:
        SqlConnection myconn = new SqlConnection("您自己的 DB連結字串");
        SqlDataAdapter myda = new SqlDataAdapter();
 
        myda.InsertCommand = new SqlCommand("insert into student_test (name,student_id,city,chinese,math) values (@name,@student_id,@city,@chinese,@math)",myconn);
 
        myda.InsertCommand.Parameters.Add("@name", SqlDbType.NVarChar, 50);
        myda.InsertCommand.Parameters["@name"].Value = TextBox1.Text;
 
        myda.InsertCommand.Parameters.Add("@student_id", SqlDbType.NVarChar, 50);
        myda.InsertCommand.Parameters["@student_id"].Value = TextBox2.Text;
 
        myda.InsertCommand.Parameters.Add("@city", SqlDbType.NVarChar, 50);
        myda.InsertCommand.Parameters["@city"].Value = TextBox3.Text;
 
        myda.InsertCommand.Parameters.Add("@chinese",SqlDbType.Int);
        myda.InsertCommand.Parameters["@chinese"].Value =Convert.ToInt32(TextBox4.Text);
 
        myda.InsertCommand.Parameters.Add("@math", SqlDbType.Int);
        myda.InsertCommand.Parameters["@math"].Value = Convert.ToInt32(TextBox5.Text);
 
        myconn.Open();
        myda.InsertCommand.ExecuteNonQuery();
        myda.Dispose();
            // 本文補充與註解 --   建議您使用這種寫法時,仍需在此寫上 Conn.Close()
 

        Response.Write(myconn.State.ToString());

    }
然後發現了一個問題,myconn.state顯示出來是Open而不是Closed
這是否代表需要自己寫close呢?
 
煩請作者抽空答覆!謝謝

=======================================

 

 

在新的書本裡面,我已經加註了 -- 建議採用 [方法B] 的作法

透過 DataAdapter的 .Update()方法進行資料異動

 

 

相關的寫法,可以參閱這些文章,希望對您有幫助。

[習題]ADO.NET #6, DataSet如何新增一筆紀錄?(搭配參數InsertCommand + Parameter)

http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/15/ado.net_dataset_insertcommand_1215.aspx

 

非常感謝。

 

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估