繼續使用上一篇使用的SqlDataSource能實作將網頁的基本資料新增(Insert)到資料庫上!!(點一點很方便的)
首先在屬性裡找到InsertQuery屬性
在設置我們要的SQL指令也可以使用裡頭的查詢產生器
點選資料表與資料欄位就可以產生Insert into.....指令
可以發現我的新值是使用『@XXX』
這是是用來取得參數的,在參數欄裡要設定對應的控制項
參數來源就是對應網頁上的控制項
選擇一下進階屬性可以發現DbType與Type兩個讓人霧傻傻的屬性,因為執行後不會出錯
對於像我這樣的初學者就忽略了它(好吧..可能只有我!)
這是因為資料庫在背後幫忙校正成了正確的參數型別,卻也拖慢資料庫執行時間!!
DbType:從C#/VB傳入資料庫時的參數型態
Type:從資料庫傳入C#/VB時的參數型態
設定完成後,剩下最重要的讓Button觸發Insert事件:
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
SqlDataSource1.Insert();
lbResult.Text = "新增完成";
}
catch
{
lbResult.Text = "Error!";
}
}
這樣點一點打不到幾行Code就完成新增功能囉!!!(我也是第一次這樣做...雖然未能完成檔案上傳)
接下來要使用CodeBehind的SqlConnection來實作這項功能
(我比較喜歡這樣做,多打點程式碼好像比較有Fu)
.....To Be Continued
您的"附件"是搭配fileupload嗎?
如果是的話,sqldatasource不能運作,新增會失敗
檔案無法上傳
我還沒有實作fileupload
因為我知道FileUpload不好使喚
所以只是先做了sqlDataSourse的基本操作能夠Insert
很抱歉在文章內沒說清楚!!!
這個範例我的書本與BLOG也有分享過,最早是看見章立民老師的書有這個範例。但章老師的書直接在畫面(.aspx)Coding,直接寫<SqlDataSource> 參數標籤。
我覺得不可思議,這很難死背。所以耐心找了一下SqlDataSource 的屬性,就找到了更簡單的設定方法,但結果相同。可以參閱我這篇文章 --
ADO.NET #4(改),自己設定輸入畫面,讓SqlDataSource幫我們完成「新增」一筆資料
http://www.dotblogs.com.tw/mis2000lab/archive/2008/09/19/sqldatasource_20080919.aspx
另外,這個作法要搭配FileUpload控制項做檔案上傳,的確會出問題。問題與解法我也分享給大家參考。一起加油! ^_^
FileUpload FormView(或DetailsView)看似簡單,但不好做 #1--初學者的盲點
http://www.dotblogs.com.tw/mis2000lab/archive/2012/11/26/formview_detailsview_fileupload_20121126.aspx(共有兩篇文章)
沒想到前輩也是一樣,因為我總是用SqlConnection來實作一切
晚上剛要開始動手時就想想精靈有沒有比較方便的設置
就如同前輩翻一翻,找了一樣的方法!!哈哈 好開心