惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
D
Docker
Vercel News
Vercel News
IT之家
IT之家
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
腾讯CDC
Google DeepMind News
Google DeepMind News
I
InfoQ
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
博客园 - Franky
The Cloudflare Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
T
Tenable Blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
Security Latest
Security Latest
H
Hackread – Cybersecurity News, Data Breaches, AI and More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google Online Security Blog
Google Online Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
F
Full Disclosure
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
Project Zero
Project Zero

博客园 - somesongs

好多年没回到这个园子 有趣的多媒体 发布简短计划,备忘 Intelligencia.UrlRewriter, 解决404找不到文件的问题 forms验证如此简单 在一个页面中调用另一个页面定义的函数 .net中,数据提交完毕后,刷新绑定控件,清空输入框的好办法,就是在时间函数的最后加入Response.Redirect(Request.FilePath); [转] Trace跟踪输出进行调试 Flash的全屏播放(转) flash中实现拖拽 Treeview中,递归生成从当前选中节点到根节点的全路径 .net从后台返回js的提示框 编写xmlhelper类【翻译】 [转]C#网络编程概述 【转】C#网络编程初探 document.body.clientHeight与document.documentElement.clientHeight 动态将Js代码写入到Head标签中 Asp.net中删除前的提示信息 location和history的详细设置
只需一行代码实现增删查改,微软已经让我们很简单。谈AccessDataSource的使用。
somesongs · 2008-05-10 · via 博客园 - somesongs

这是一个很简单的内容。日常我们总腻烦做增删查改这样的重复性的劳动,如果你的项目不是太大,如果你的团队很小,或许就是你一个人,那么就完全可以参考以下这样简单的方式。微软已经给我们做了。我们只要写一行代码,便实现了增删查改。

以下以AccessDataSource为例,你只要写一行代码,便实现一个增删查改的页面。

一、我们先建立这个解决方案,使用Access做数据库。

二、看一下数据库表吧

我们的任务便是对这个Test表里面的数据进行增删查改。

三、在页面上拖入如下图的控件,意思很明显。

id是自增类型,time则自动获取时间,所以只需要录入title和content两个字段的内容,下面是一个gridview控件,使用数据源AccessDataSource1,通过使用AccessDataSource我们只要在add按钮的事件里写入一行简单的代码,便实现了增删查改。如下图:

编辑和删除功能集成在gridview控件里,不再需要另外写代码了。
是不是超级简单,那么我们看看在AccessDataSource里要做一些什么设置:

我们看到增删查改的四个sql语句都需要设置的,例如插入:

总之,sql语句的生成,都是可以在这个界面里拖拖便完成了。我们可以看看AccessDataSource的详细设置代码:

       <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/data.mdb"
            DeleteCommand
="DELETE FROM Test WHERE (id = ?)" InsertCommand="INSERT INTO Test (title, content, [time]) VALUES (?,?,DATE())"
            SelectCommand
="SELECT * FROM [Test]" UpdateCommand="UPDATE Test SET title = ?, content = ?, [time] = ? WHERE (id = ?)">
            
<InsertParameters>
                
<asp:ControlParameter ControlID="TextBox1" Name="title" PropertyName="Text" />
                
<asp:ControlParameter ControlID="TextBox2" Name="content" PropertyName="Text" />
            
</InsertParameters>
        
</asp:AccessDataSource>

当然,在GirdView中也需要相应的增加修改和删除的按钮,不要紧,这些微软也都提供了:

在GridView的属性里,添加上图标出的两个CommandField。那么便大功告成了,就这么简单,我们看看GridView的代码:

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
            DataSourceID
="AccessDataSource1">
            
<Columns>
                
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                    SortExpression
="id" />
                
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
                
<asp:BoundField DataField="content" HeaderText="content" SortExpression="content" />
                
<asp:BoundField DataField="time" HeaderText="time" SortExpression="time" />
                
<asp:CommandField ShowEditButton="True" />
                
<asp:CommandField ShowDeleteButton="True" />
            
</Columns>
        
</asp:GridView>

感言:参与过很多项目,还有一些所谓的大项目,很累,虽然有的一开始使用了许多设计模式,但可能由于人员水平层次不齐和前后接力的问题,到后来并没有完全遵守一些规则,最后导致乱七八糟。累死了。最近给一个教育行业的朋友写一个每天班主任登记学生考勤情况的页面,一共也就6个页面,操作三个表,典型的增删查改,就用微软给我们的吧,什么也不想,1小时全部测试完成,还包括研究探索的时间,晕,原来真的这样简单,原来的什么数据库链接字符串,等等,连web.config都可以省掉。

话说回来,学习和追求可还得要向园子里的大大们看齐,真正的企业级高可信级,还是得努力努力向他们学习。