AccessDataSource的使用,一行代码实现增删改

来源:互联网 发布:化身孤岛的鲸 知乎 编辑:程序博客网 时间:2024/06/06 15:51

由于前段时间,我想做一个用Repeater控件实现前台绑定数据,少写甚至不写后置代码。  因此就涉及了AccessDataSource 控件,虽然我想要的结果没有实现,但是我们可以借此机会来学习下此控件,毕竟之前用得也比较少。

AccessDataSource控件,优点在于:“写得少,做得多”,而缺点在于,SQL语句不好处理,如果是更复杂的,该怎么放在这个控件中用? 值得思考,这个问题我暂时放下了,因为时间有限。  (我的理解可能不是最好的理解,但还是希望对大家有所帮助  微笑


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

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


二、看一下数据库表吧



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

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



id是自增类型,time则自动获取时间,所以只需要录入titlecontent两个字段的内容,下面是一个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>

 

 

 

 

http://wenku.baidu.com/link?url=551GsX1d0vj92A9zn14XDlOJcphi_vzOcV-4FA5t1MtgvcfloHh3hwy3MUZrHAmxP0moq5of1XDhOlFxi-0FyFkUaOIqlJ_0qt79hroR6OK

AccessDataSource

 


以下是AccessDataSource的一些详细描述

类是使用 

Microsoft Access 数据库的数据源控件。与它的基类SqlDataSource一样,AccessDataSource控件使用SQL 查询执行数据检索。 

AccessDataSource控件的一个独特之处是不用设置ConnectionString属性。

您需要做的就是使用DataFile属性设置Access .mdb 文件的位置,AccessDataSourc将负责维护数据库的基础连接。

您应该将Access 数据库放在网站的App_Data 目录中,并用相对路径(如

~/App_Data/Northwind.mdb)引用它们。此位置可以为数据文件提供额外的安全性,因为如果直接由客户端Web 浏览器请求这些数据文件,不会提供它们。 

AccessDataSource类不支持连接到受用户名或密码保护的Access 数据库,因为您无法设置 

ConnectionString属性。如果您的Access 数据库受用户名或密码保护,请使用

SqlDataSource控件连接到数据库,以便可以指定完整的连接字符串。您可以使用数据绑定控件的DataSourceID 属性将数据绑定控件绑定到AccessDataSource。有关将数据绑定控件绑定到数据源控件的更多信息,请参见使用数据源控件绑定到数据。因为AccessDataSource控件专门用于一个数据库产品,所以它总是使用同一个提供程序:System.Data.OleDb .NET 

数据提供程序。因此,ProviderName属性为只读的。在使用System.Data.OleDb

 

提供程序时,参数化SQL 语句中的参数顺序非常重要,您在SelectCommand

UpdateCommandInsertCommand 和DeleteCommand属性中指定的任何参数化

SQL 查询都必须与相应参数集合中的任何Parameter对象的顺序相匹配。如果在

AccessDataSource上没有指定参数集合,则提供给这些操作的参数顺序必须与它们在基础SQL 语句中的顺序相匹配。有关更多信息,请参见 SqlDataSource 控件使用参数。 

AccessDataSource控件支持其基类支持的同样的缓存行为。使用缓存可以提高使用AccessDataSource控件的页面的性能。有关数据源缓存的更多信息,请参见使用数据源控件缓存数据

 

 

下表描述了AccessDataSource控件的功能。功能要求排序将DataSourceMode属性设置为DataSet值。筛选将FilterExpression属性设置为在调用Select方法时用于筛选数据的筛选表达式。 

分页AccessDataSource不支持直接在Access 数据库上进行分页操作。如果将

DataSourceMode属性设置为DataSet值,则数据绑定控件(如GridView)可以在AccessDataSource返回的项上进行分页。 

更新将UpdateCommand属性设置为用来更新数据的SQL 语句。此语句通常是参数化的。

删除将DeleteCommand属性设置为用来删除数据的SQL 语句。此语句通常是参数化的。

插入将InsertCommand属性设置为用来插入数据的SQL 语句。此语句通常是参数化的。 

缓存将DataSourceMode属性设置为DataSet值,EnableCaching属性设置为true,并根据希望缓存数据所具有的缓存行为设置CacheDurationCacheExpirationPolicy属性。与所有数据源控件一样,AccessDataSource控件与强类型数据源视图类关联。正如AccessDataSource控件扩展SqlDataSource 

控件,AccessDataSourceView类扩展SqlDataSourceView类。AccessDataSourceView类重写几个SqlDataSourceView方法以使用System.Data.OleDb. .NET 数据提供程序。

0 0
原创粉丝点击