How do I insert data using a DetailsView into an access database without everything breaking?
- by Steve
Hey
I'm getting the error: Data type mismatch in criteria expression. when I try to submit a DetailsView insert.
Code for Default.aspx: (from inside an asp:Content tag)
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px"
AutoGenerateRows="False" DataKeyNames="user_id"
DataSourceID="AccessDataSource1" CellPadding="4" ForeColor="#333333"
GridLines="None">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<Fields>
<asp:BoundField DataField="email" HeaderText="email" SortExpression="email" />
<asp:BoundField DataField="password" HeaderText="password"
SortExpression="password" />
<asp:BoundField DataField="users_name" HeaderText="users_name"
SortExpression="users_name" />
<asp:BoundField DataField="image_path" HeaderText="image_path"
SortExpression="image_path" />
<asp:BoundField DataField="mobile" HeaderText="mobile"
SortExpression="mobile" />
<asp:BoundField DataField="twitter" HeaderText="twitter"
SortExpression="twitter" />
<asp:TemplateField HeaderText="privacy_level_id"
SortExpression="privacy_level_id">
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="AccessDataSource2" DataTextField="privacy_level_name"
DataValueField="privacy_level_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource2" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [PrivacyLevels]"></asp:AccessDataSource>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("date_of_birth") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="course_id"
SortExpression="course_id">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList3" runat="server"
DataSourceID="AccessDataSource3" DataTextField="course_name"
DataValueField="course_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource3" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Courses]">
</asp:AccessDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList22" runat="server"
DataSourceID="AccessDataSource22" DataTextField="privacy_level_name"
DataValueField="privacy_level_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource22" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [PrivacyLevels]"></asp:AccessDataSource>
</InsertItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="DropDownList3" runat="server"
DataSourceID="AccessDataSource3" DataTextField="course_name"
DataValueField="course_id" Enabled="False">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource3" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Courses]"></asp:AccessDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="nationality_id" SortExpression="nationality_id">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="AccessDataSource20" DataTextField="nationality_name"
DataValueField="nationality_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource20" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Nationalities]">
</asp:AccessDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="AccessDataSource20" DataTextField="nationality_name"
DataValueField="nationality_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource20" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Nationalities]">
</asp:AccessDataSource>
</InsertItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="AccessDataSource20" DataTextField="nationality_name"
DataValueField="nationality_id" Enabled="False">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource20" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Nationalities]">
</asp:AccessDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="residence_id" SortExpression="residence_id">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList4" runat="server"
DataSourceID="AccessDataSource4" DataTextField="residence_name"
DataValueField="residence_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource4" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Residences]"></asp:AccessDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList4" runat="server"
DataSourceID="AccessDataSource4" DataTextField="residence_name"
DataValueField="residence_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource4" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Residences]"></asp:AccessDataSource>
</InsertItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="DropDownList4" runat="server"
DataSourceID="AccessDataSource4" DataTextField="residence_name"
DataValueField="residence_id" Enabled="False">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource4" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Residences]"></asp:AccessDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="course_year" HeaderText="course_year"
SortExpression="course_year" />
<asp:TemplateField HeaderText="gender_id" SortExpression="gender_id">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList5" runat="server"
DataSourceID="AccessDataSource5" DataTextField="gender_name"
DataValueField="gender_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource5" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Genders]"></asp:AccessDataSource>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList5" runat="server"
DataSourceID="AccessDataSource5" DataTextField="gender_name"
DataValueField="gender_id">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource5" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Genders]"></asp:AccessDataSource>
</InsertItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="DropDownList5" runat="server"
DataSourceID="AccessDataSource5" DataTextField="gender_name"
DataValueField="gender_id" Enabled="False">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource5" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
SelectCommand="SELECT * FROM [Genders]"></asp:AccessDataSource>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowInsertButton="True" InsertText="Create my user!" />
</Fields>
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:DetailsView>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/VisageFinal.mdb"
DeleteCommand="DELETE FROM [Users] WHERE [user_id] = ?"
InsertCommand="INSERT INTO [Users] ([email], [password], [users_name], [image_path], [mobile], [twitter], [privacy_level_id], [nationality_id], [course_id], [residence_id], [course_year], [gender_id]) VALUES ('?', '?', '?', '?', '?', '?', ?, ?, ?, ?, ?, ?)"
SelectCommand="SELECT * FROM [Users]"
UpdateCommand="UPDATE [Users] SET [email] = ?, [password] = ?, [users_name] = ?, [date_of_birth] = ?, [image_path] = ?, [mobile] = ?, [twitter] = ?, [privacy_level_id] = ?, [nationality_id] = ?, [course_id] = ?, [residence_id] = ?, [has_set_privacy_level] = ?, [course_year] = ?, [gender_id] = ? WHERE [user_id] = ?">
<DeleteParameters>
<asp:Parameter Name="user_id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="password" Type="String" />
<asp:Parameter Name="users_name" Type="String" />
<asp:Parameter Name="image_path" Type="String" />
<asp:Parameter Name="mobile" Type="String" />
<asp:Parameter Name="twitter" Type="String" />
<asp:Parameter Name="privacy_level_id" Type="Int32" />
<asp:Parameter Name="nationality_id" Type="Int32" />
<asp:Parameter Name="course_id" Type="Int32" />
<asp:Parameter Name="residence_id" Type="Int32" />
<asp:Parameter Name="has_set_privacy_level" Type="Boolean" />
<asp:Parameter Name="course_year" Type="Int32" />
<asp:Parameter Name="gender_id" Type="Int32" />
<asp:Parameter Name="user_id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="password" Type="String" />
<asp:Parameter Name="users_name" Type="String" />
<asp:Parameter Name="image_path" Type="String" />
<asp:Parameter Name="mobile" Type="String" />
<asp:Parameter Name="twitter" Type="String" />
<asp:Parameter Name="privacy_level_id" Type="Int32" />
<asp:Parameter Name="nationality_id" Type="Int32" />
<asp:Parameter Name="course_id" Type="Int32" />
<asp:Parameter Name="residence_id" Type="Int32" />
<asp:Parameter Name="course_year" Type="Int32" />
<asp:Parameter Name="gender_id" Type="Int32" />
</InsertParameters>
</asp:AccessDataSource>
Any ideas what I've broken?