日期:2014-05-17  浏览次数:20415 次

.net中如何更好的进行数据修改操作
如题,不管你做的系统是大的还是小的,或多或少都会涉及到数据更新或者修改的操作.如果用gridview或其它的数据控件来进行更新,那如何处理用户的非法输入?如果不采数据控件,而直接将数据绑定到textbox等显示数据控件上,如果对于数量比较大的来说,要写的代码就比较多.如果采用后一种,那么.net所拥有的高开发效率就不存在了.
 说说自已是怎么处理,谢谢!(说了都有分)


------解决方案--------------------
我们使用的是后者,也是按常规的做法,期待好的方法
------解决方案--------------------
既然你想要高开发效率,又想功能上的强大,
我认为你应该利用各个控件的优势,而不是去寻找功能强大的控件
越是强大的控件,他的弊端也就更多
显示控件就是显示功能强大,你想要他的编辑功能也很强大?难
但是你可以配合编辑控件使用


还有种办法:做控件2次开发了
呵呵,
------解决方案--------------------
通过多层架构
使用数据库操作类。操作相关实体,判断类型在页面, 如用验证控件,JS判断
判断实现数据库更新
也可使用LINQ
可看看一些ORM
------解决方案--------------------
为什么用textbox就会有很多代码呢?只需要判断代码是否含非法字符就行了啊。
------解决方案--------------------
07年中旬开始接触ASP.NET的,那时已经是2.0了。
也就是说我一开始接触到的就是DataSource Control.(SqlDataSource/ObjectDataSource)
所以,从我的角度讲,实在是不理解已经2.0的时候还是有那么多人用GridView.DataSource=***, GridView.DataBind();这样的东西。
特别不理解GridView.RowUpdating里自己写代码更改数据库的作法。
从2.0开始理解的话,GridView.RowUpdating就是按字面意思就是老子要准备在GridView上更改当前行了,(和数据库操作完全没关系),看有没有需要在和数据库沟通之前取消这次更新之类的那种感觉。也就是向SqlDataSource或ObjectDataSource的Parameters传递我的更新之前有没有必要取消或者做些别的动作这种感觉。结果呢,我看到好多人在GridView.RowUpdating里写操作数据库的代码。从2.0开始接触asp.net的人角度讲,这实在不可理解。因为2.0还有个ObjectDataSource.Updating是吧?又是个关卡,可以按需要做些事情。
至少我的感觉是2.0的DataSource控件其实很有用,也算用心良苦,可当时确实很多人貌似不愿意用这家伙。
现在还有很多论坛里的代码不愿意用似的,不是吗?

至少效率方面,简单讲我觉得client-centric吧。多用些Ajax.
------解决方案--------------------
其实.NET开发所谓的高效率并不是单单指语句的节省。每个程序员都多少会有一些偷懒的办法的,你可以看看CodeSmith


------解决方案--------------------
这些判断一般属于业务逻辑部分,前台后台判断代码是必须要做的。

有类似的辅助方法或者类库,但是具体的实现基本需要自己完成。
------解决方案--------------------
我以前就做过一次这样的子的
就是用textbox来显示数据的,当鼠标放上去就能够修改
这个一样是用gridview显示的 只是用的是文本框而已 没什么代码累赘的





探讨
既然你想要高开发效率,又想功能上的强大,
我认为你应该利用各个控件的优势,而不是去寻找功能强大的控件
越是强大的控件,他的弊端也就更多
显示控件就是显示功能强大,你想要他的编辑功能也很强大?难
但是你可以配合编辑控件使用


还有种办法:做控件2次开发了
呵呵,

------解决方案--------------------
”直接将数据绑定到textbox等显示数据控件上,如果对于数量比较大的来说,要写的代码就比较多“

显示数据不一定用TextBox了。
HTML code
<div style='width: 100%; margin: 5px auto;'>
                <table cellspacing="1" cellpadding="0" border="0" width="98%" class="Normal_Table"
                    align="center">
                    <tr class="Table_Title" height="25">
                        <td align="center" colspan="6">
                            欠费总计(<%=DateTime.Now.ToString("yyyy-M-dd") %>)</td>
                    </tr>
                    <tr height="25" class="Table_Header">
                        <td align="center" width="10%">
                            电话号码</td>
                        <td width="10%">
                            &nbsp;缴费月份</td>
                        <td align="center" width="20%">
                            余额
                        </td>
                        <td align="center" width="20%"> 
                            费用总计</td>
                        <td align="center" width="20%">
                            欠费</td>
                        <td align="center" width="20%">
                            用户姓名</td>
                    </tr>
                    <asp:Repeater ID="NewsList" runat="server">