个人学习和项目经验积累分享
|
原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=113&id=165179 */ -------------------------------------------------------------------------------------- 6. 列表型控件,如CheckBoxList,DropDownList,ListBox,RadioButtonList等,在绑定时需要设定DataTextField(指定显示为Text的数据列)、DataValueField(指定显示为Value的数据列); 7. 直接在DataReader对象中取值,需要先执行该对象的Read()方法,然后对该对象执行索引似的访问(2006年10月20日); 8. 对页面Page_Load的IsPostBack的判断,对很多Web控件的提交有很大的影响,如DropDownList等; 9. 运用ObjectDataSource中间控件时提供的泛型方法需要满足普遍原理,如Update、Insert操作时SQL语句应该完全给出对所有字段的引用操作; 10. 检查代码时,特别留意页面的Page_Load事件代码; 11. 查询可以使用SQL,也可以对DataSet进行查询: ds.Tables[0].DefaultView.RowFilter = "查询条件"; 12. 在分页的情况下,如果最后一页只有一行,删除该行时会发生错误,因为删除记录后需要重新绑定数据,而此时DataGrid还会自动显示原来的数据页,而该页已经不存在了,所以在重新绑定前要判断下,需要时手工修改CurrentPageIndex属性 13. 在C#中给float变量赋值时,有一种特殊情况,语句:float y=3.5;//不会被编译,因为类似3.5这样带有小数部分的数字常量会被C#认为是拥有更高精度的double值,必须显式地把浮点常量转换为float值:float y=(float)3.5;//或者float y=3.5F; 14. 集合中不允许存在重复的对象引用;常用列表有ArrayList、SortedList(有序的排放); 15. 图片一般是通过二进制流形式读进读出数据库的,也可以在数据库中存放图片的链接地址来访问图片; 16. 发送邮件:<a href="mailto:karlen_xu@hotmail.com" target="_blank">联系King</a> 17. GridView进行数据绑定时,在RowDataBound事件里不需要手动循环操作;而且很容易忽略对e.Row的RowType进行判断;GridView模版列里还可以嵌套GridView; 18. GridView中隐藏字段需要放在模版列里才能取到对应控件绑定的值;另外,客户端RadioButton在模版列中要设置name属性才能实现单选的效果,也可以实现客户端控件的属性绑定值’<%# Eval("ContractNoSys") %>’,而且可以将多个值绑定到一个属性上,如:’ <%# Eval("ContractNoSys") %>,<%# Eval("ContractName") %>’ 19. System.Data.DataRowBuilder不可访问,因为它受保护级别限制,所以不能直接new一个DataRow对象,必须通过一个DataTable对象来创建:DataRow row=table.NewRow(); 20. Dictionary、HashTable等作数据源时,要用它的Values属性而不是其本身; 21. 通过Sql实现查询数据分页 方法一:含主键 SELECT TOP PageSize 数据列 FROM 表名 WHERE ( 1 = 1 AND 查询条件 AND RowGuid NOT IN (SELECT TOP PageSize *PageIndex RowGuid FROM 表名 WHERE (1 = 1 AND 查询条件) order by RowGuid ) order by RowGuid) 方法二:不含主键 WITH 任意别名 AS (select ROW_NUMBER() over(排序条件) AS ROWNUMBER ,* from 表名/视图名 WHERE 查询条件 ) SELECT * FROM任意别名WHERE ROWNUMBER BETWEEN startIndex AND endIndex 方法三: 通过DataAdapter对象的Fill(DataSet dataSet, int startRecord, int maxRecords, string srcTable)方法填充DataSet 22. 对数据库的批量操作应该放在一个事务里处理,一旦出错,操作整体回滚; 23. WebService方法的返回值必须是可以序列化的,这样才可以在互联网里传输; 24. 分页按钮 <font style="font-size: 9pt; font-family: webdings;"> <asp:LinkButton ID="firstPage" runat="server" OnClick="firstPage_Click">9</asp:LinkButton> <asp:LinkButton ID="previousPage" runat="server" OnClick="previousPage_Click">7</asp:LinkButton> </font> <asp:Label ID="currentPage" runat="server" Text="1"></asp:Label> / <asp:Label ID="totalPage" runat="server" Text="1"></asp:Label> <font style="font-size: 9pt; font-family: webdings"> <asp:LinkButton ID="nextPage" runat="server" OnClick="nextPage_Click">8</asp:LinkButton> <asp:LinkButton ID="lastPage" runat="server" OnClick="lastPage_Click">:</asp:LinkButton> </font> 25. 使用wsdl命令将webservice生成一个代理类(cs文件),然后编译该cs文件为dll,最后在代码里使用 26. GridView里HyperLinkField模版列设置DataNavigateUrlFields和DataNavigateUrlFormatString属性 27. 使用DataAdapter进行Update操作时,需手动设置UpdateCommand;使用CommandBuilder时,必须满足DataAdapter操作的是单个数据库表,而且必须指定Select语句(必须包含主键),这样才可以自动生成Update、Delete、Insert语句 28. 使用DataAdapter进行Update操作时,使用DataAdapter的OnRowUpdating事件可检测防止数据共享冲突;更新之后OnRowUpdated事件处理 29. web服务中的状态管理是可选的,并且默认情况下是禁用的,要启动状态管理,必须:实现web服务的类必须从System.Web.Services命名空间的WebService类中继承,继承类可以自动访问Application对象,只有把WebMethod属性EnableSession设置为true,保存在Session中的数据才是有效的 30. web服务三基石:SOAP(简单对象访问协议,是一种基于XML的通信协议),WSDL(web服务描述语言),UDDI(统一描述、发现和集成) 31. 方法一:利用WebBrowser控件的函数接口来打印 <object ID=’WebBrowser1’ WIDTH=0 HEIGHT=0 CLASSID=’CLSID:8856F961-340A-11D0-A96B-00C04FD705A2’> //打印 WebBrowser1.ExecWB(6,1); //打印设置 WebBrowser1.ExecWB(8,1); //打印预览 WebBrowser1.ExecWB(7,1); //直接打印 WebBrowser1.ExecWB(6,6); 方法二:IE打印 通过把数据绑定在GridView里 <!—startprint--> <asp:DataGird …>…</ asp:DataGird > <!—endprint--> Function preview()
源代码网推荐 源代码网供稿. |
