MIS2000 Lab. -- ASP.NET学习&分享 / ASP.NET案例精编(清华大学出版社)
您好,我来自台湾。很高兴与各位分享一些成果。希望对您有帮助。出版书籍是「ASP.NET案例精编 / 清华大学出版社」。

ADO.NET #4(改),自己设定输入画面,让SqlDataSource帮我们完成「新增」一笔数据

 

http://www.dotblogs.com.tw/mis2000lab/archive/2008/09/19/sqldatasource_20080919.aspx

 

 

这两天看见一本中文书,上面的范例颇为特别。

已经购买本书的读者,这几个范例,可以当成书本 14.2 的后续补充文章。   希望对大家有帮助。

 

[ASP.NET案例精编--适用于VS2005/2008] 清华大学出版社

http://www.china-pub.com/46063 

2009/5/15上市

市场价 :¥59.80 RMB(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

 

---------------------------------------------------------------------------------------------------------------------

本范例采用的 test数据表,与本书范例相同,这些范例来不及在书上发表,如今在网络上为读者介绍,当成售后服务。

请您具备本书 GridView第九章、ADO.NET第十三&十四章的基础后,才来观摩本范例。

---------------------------------------------------------------------------------------------------------------------

 

1.  首先,在画面上,自己拉进几个 TextBox而不是套用现成的 DetailsView or FormView控件。

      接着,设定好 SqlDataSource,并且自动产生SQL指令 ----Select / Insert / Update/ Delete

      简单的说,新增一笔数据(至数据表)的画面,我自己手工完成。

     但后续的 Insert动作,由 SqlDataSource或 AccessDataSource「自动」帮我做好。

 

====以下的重点部份,是小弟个人亲身测试。并且重点抓图!不这样作的话,根本作不出来!==========(Start)====

这时候, .aspx档案的HTML码,预设的SqlDataSource Insert参数是下面这个样子。

      <InsertParameters>
               <asp:Parameter Name="test_time"Type="DateTime" />
               <asp:Parameter Name="class" Type="String"/>
               <asp:Parameter Name="title" Type="String"/>
                ......省略..........
      </InsertParameters>

就算程序能运作,数据也无法新增到数据库里面!

 

该怎么解决呢?    请注意看下面的设定画面#1,不这样作的话,程序不会正常运作

 

SqlDataSource里面的每一个参数都要重新设定。如下图的设定画面#2。

逐一挑选每个 Web控件(Web ControlID名称,逐一设定完成。

完成后,刚刚的 SqlDataSource里面的 insert参数,必须变成下面这样,程序才能运作!

 <asp:SqlDataSourceID="SqlDataSource1" runat="server"
           ConnectionString="<%$ ConnectionStrings:testConnectionString1 %>"
           InsertCommand="INSERT INTO [test] ([test_time], [class], [title], [summary],[article], [author]) VALUES (@test_time, @class, @title, @summary, @article, @author)">

 

     <InsertParameters>     批注:看到没,底下的参数产生变化,这样才是正确的!
               <asp:ControlParameter ControlID="TextBox_test_time" Name="test_time"
                   PropertyName="Text" Type="DateTime" />
               <asp:ControlParameter ControlID="TextBox_Class" Name="class"
                   PropertyName="Text" Type="String" />
               <asp:ControlParameter ControlID="TextBox_title" Name="title"
                   PropertyName="Text" Type="String" />
                   ........省略........
      </InsertParameters>
 </asp:SqlDataSource>

====以上的重点部份,是小弟个人亲身测试。并且重点抓图!不这样作的话,根本作不出来!==========(End)====

 

 

Q:请问你,为什么要自己设定上面的步骤呢?以前用GridView / ListView都不需这些设定啊?

 

A大型的数据系结(数据绑定)控件,例如:GridView/ ListView / DetailsView等等,搭配SQlDataSource的时候,会自动做好每一个字段的配对&设定,就算改用样版(Template)也没问题。自己不需要手动去修改。

 

而上面的范例,每一个TextBox控件,搭配SqlDataSource的时候,无法完成自动配对,必须手动一一设定之!

 

2.  我们在后置程序代码(Code Behind),写程序去控制,手动执行 SqlDataSource的  .Insert(),启动新增的动作。

 

Protected Sub Button_Insert_Click(ByValsender As Object, ByVal e As System.EventArgs) Handles Button_Insert.Click

       '== 执行SQL指令 .Insert() ==   哈哈,后置程序只有一行!
       SqlDataSource1.Insert()

End Sub 

 

 

 蓝色小铺,也有人发问雷同的问题

http://www.blueshop.com.tw/board/show.asp?subcde=BRD200810242153360A7&fumcde=FUM20041006161839LRJ&rplcnt=4

就当成这一篇文章的课后习题,给大家自己作吧.....  

答案在此,请下载DataBinding_4_Radio.rar

 

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


这个范例,可以让我们更了解  SqlDataSource背后是怎么运作的。

......正想整理起来,贴上BLOG与大家分享。

 

突然发现,微软MSDN网站上的范例,跟书本里面一模一样。

那么,我就省下这些书写的功夫,转贴网址给大家吧。

(嗯!我也会参考MSDN的文件,毕竟这是官方文件,最准确!
     但我至少会写上「资料来源:微软MSDN网站」,注明出处。   表示我是「引用」,而不是原作。

    引用学术规范,注明了出处,比较不会被人骂我抄袭。.....原来大师写书时,所采用的范例,也是从微软MSDN来的 

 

这位大师的书本里面,直接沿用MSDN范例。   画面 & 后置程序代码,都一样。

没有介绍上面 "两张设定图片",对于用惯VS 2005 / VS 2008 / VS 2010这种开发工具的人,

会一直写错程序喔!     请您特别注意!!!!!!

 

 

SqlDataSource的几个事件,直接看他底下的范例:

 

这两篇也一样,可以参考。(这两篇讲基础,请从此入门)


已经购买本书的读者,这几个范例,可以当成书本 14.2 的后续补充文章   希望对大家有帮助。

 

[ASP.NET案例精编--适用于VS2005/2008] 清华大学出版社

http://www.china-pub.com/46063 

2009/5/15上市

市场价 :¥59.80 RMB(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

 

 

与本文相关的习题,请看:

 

2009/9/30 针对本文的题目,我新增一个习题给大家参考 --

[习题] 补充本书第14(14-2)的范例--自己撰写程序SqlDataSource「新增数据」,并且采用参数(InsertParameters)  

 

 

 

本系列 ADO.NET共有下面文章:

范例:

 

 

 

 

posted on 2010-10-22 13:55  MIS2000 Lab.  阅读(223)  评论(0编辑  收藏  举报


ASP.NET案例精编——适用于VS 2005/2008(配光盘)
 

当当网购买 http://product.dangdang.com/product.aspx?product_id=20583373&ref=search-1-pub