我正在尝试将新产品插入到我的数据库中,但我不确定如何使我的“添加产品”按钮正常工作。 gridview帮助我设置编辑/更新/删除并完美地工作。但我不知道如何使我的按钮进行通信并从我的4个文本框添加到我的数据库数据库。我不确定下面的代码是否有用。
要解释虽然底部表格包含我试图从值插入到我的数据库中的文本框。也许有一个我失踪的财产?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ProductCode" DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="ProductCode" HeaderText="ProductCode"
ReadOnly="True" SortExpression="ProductCode" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Version" HeaderText="Version"
SortExpression="Version" />
<asp:BoundField DataField="ReleaseDate" HeaderText="ReleaseDate"
SortExpression="ReleaseDate" />
<asp:CommandField ButtonType="Button" ShowEditButton="True" />
<asp:CommandField ButtonType="Button" ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/TechSupport.mdb"
DeleteCommand="DELETE FROM [Products] WHERE [ProductCode] = ?"
InsertCommand="INSERT INTO [Products] ([ProductCode], [Name], [Version], [ReleaseDate]) VALUES (?, ?, ?, ?)"
SelectCommand="SELECT * FROM [Products] ORDER BY [ProductCode]"
UpdateCommand="UPDATE [Products] SET [Name] = ?, [Version] = ?, [ReleaseDate] = ? WHERE [ProductCode] = ?">
<DeleteParameters>
<asp:Parameter Name="ProductCode" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Version" Type="Decimal" />
<asp:Parameter Name="ReleaseDate" Type="DateTime" />
<asp:Parameter Name="ProductCode" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="ProductCode" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Version" Type="Decimal" />
<asp:Parameter Name="ReleaseDate" Type="DateTime" />
</InsertParameters>
</asp:AccessDataSource>
<br />
<br />
To add a new Product, enter the product information below and Click Add Product!<br />
<br />
<table border="0" cellpadding="0" cellspacing="6"><tr><td>Product Code:</td><td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td><td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox1"></asp:RequiredFieldValidator></td></tr>
<tr><td>Name:</td><td> <asp:TextBox ID="TextBox2" runat="server" Width="349px"></asp:TextBox></td><td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox2"></asp:RequiredFieldValidator></td></tr>
<tr><td>Version:</td><td><asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></td><td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox3"></asp:RequiredFieldValidator>
</td></tr>
<tr><td>Release Date:</td><td><asp:TextBox ID="TextBox4" runat="server">mm/dd/yy</asp:TextBox></td><td>
</td></tr>
</table>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Add Product" />
</asp:Content>
答案 0 :(得分:2)
将插入参数从Parameter
转换为ControlParameter
,为每个参数使用ControlID
属性值的相应文本框ID,为Text
属性值使用PropertyName
(即改变InserParameters部分如下)。之后,将以下代码放在Button1
Click
事件处理程序中:AccessDataSource1.Insert()
。
<InsertParameters>
<asp:ControlParameter Name="ProductCode" Type="String" ControlID="TextBox1" PropertyName="Text" />
<asp:ControlParameter Name="Name" Type="String" ControlID="TextBox2" PropertyName="Text"/>
<asp:ControlParameter Name="Version" Type="Decimal" ControlID="TextBox3" PropertyName="Text"/>
<asp:ControlParameter Name="ReleaseDate" Type="DateTime" ControlID="TextBox4" PropertyName="Text" ConvertEmptyStringToNull="true"/>
</InsertParameters>