如下所示,在页面上放了一个Gridview用于显示、编辑数据,同时放了一个AccessDataSource作为数据源。
在GridView中“编辑”保存是通过GridView的选中行就是编辑模式来实现的。
现在的问题是,“Insert”操作怎么实现呢?Gridview似乎并没有提供一个Insert方法啊?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AppCode,Title"
DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="AppCode" HeaderText="AppCode" ReadOnly="True" SortExpression="AppCode" />
<asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True" SortExpression="Title" />
<asp:BoundField DataField="VedioFile" HeaderText="VedioFile" SortExpression="VedioFile" />
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="/App_Data/heart.mdb"
DeleteCommand="DELETE FROM [Vedio] WHERE (([AppCode] = ?) OR ([AppCode] IS NULL AND ? IS NULL)) AND (([Title] = ?) OR ([Title] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [Vedio] ([AppCode], [Title], [VedioFile], [ID]) VALUES (?, ?, ?, ?)"
SelectCommand="SELECT * FROM [Vedio]" UpdateCommand="UPDATE [Vedio] SET [VedioFile] = ?, [ID] = ? WHERE (([AppCode] = ?) OR ([AppCode] IS NULL AND ? IS NULL)) AND (([Title] = ?) OR ([Title] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="AppCode" Type="String" />
<asp:Parameter Name="Title" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="VedioFile" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="AppCode" Type="String" />
<asp:Parameter Name="Title" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="AppCode" Type="String" />
<asp:Parameter Name="Title" Type="String" />
<asp:Parameter Name="VedioFile" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
</InsertParameters>
</asp:AccessDataSource>
在GridView中“编辑”保存是通过GridView的选中行就是编辑模式来实现的。
现在的问题是,“Insert”操作怎么实现呢?Gridview似乎并没有提供一个Insert方法啊?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AppCode,Title"
DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="AppCode" HeaderText="AppCode" ReadOnly="True" SortExpression="AppCode" />
<asp:BoundField DataField="Title" HeaderText="Title" ReadOnly="True" SortExpression="Title" />
<asp:BoundField DataField="VedioFile" HeaderText="VedioFile" SortExpression="VedioFile" />
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="/App_Data/heart.mdb"
DeleteCommand="DELETE FROM [Vedio] WHERE (([AppCode] = ?) OR ([AppCode] IS NULL AND ? IS NULL)) AND (([Title] = ?) OR ([Title] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [Vedio] ([AppCode], [Title], [VedioFile], [ID]) VALUES (?, ?, ?, ?)"
SelectCommand="SELECT * FROM [Vedio]" UpdateCommand="UPDATE [Vedio] SET [VedioFile] = ?, [ID] = ? WHERE (([AppCode] = ?) OR ([AppCode] IS NULL AND ? IS NULL)) AND (([Title] = ?) OR ([Title] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="AppCode" Type="String" />
<asp:Parameter Name="Title" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="VedioFile" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="AppCode" Type="String" />
<asp:Parameter Name="Title" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="AppCode" Type="String" />
<asp:Parameter Name="Title" Type="String" />
<asp:Parameter Name="VedioFile" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
</InsertParameters>
</asp:AccessDataSource>
在各个FooterTemplate加入TextBox;Button等控件,
开始设置GridView的ShowFooter=false;即:
GridView1.ShowFooter = false;在GridView外加一个"添加"按钮,点击该按钮执行:
GridView1.ShowFooter = true;
楼主看到的就是GridView的添加界面了!!
我还有点不明白,我的意思是AccessDataSource中有InsertCommand, InsertParameters,这个要怎么用呢?
如果只能自己写insert代码的话,上面这两个在VS.NET编辑环境下自动生成的属性有什么用呢?
如果只能自己写insert代码的话,上面这两个在VS.NET编辑环境下自动生成的属性有什么用呢?
界面设置就是点AccessDataSource进入"配置数据源"/.../点"指定自定义sql语句或存储过程"
不要点"指定来自表或视图的列"
这样你就可以设置select,update,insert,delete了!!
insert的语句大概如下:INSERT INTO employees(name, sex, deptid, av) VALUES (?, ?, ?, ?)
这里的?就可以用InsertParameters来设置,(当然也可以用控件来设置)
一般代码如下:
AccessDataSource1.InsertParameters["name"].DefaultValue = "金正日";
.......
保存代码:
AccessDataSource1.Insert();呵呵!打这点文字还是很累的!!