Feb 18, 2010, 10:43 AM
Error On Insert Record in Grid with SQLDataSource and Access DataBase
Update existing records and delete records works fine. But when one record is inserted and Save button is clicked occur Error in OleDB Parameter. See Attachments. My Code:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="GridWithEditField.aspx.vb" Inherits="GridWithEditField" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Grid With Paginação</title>
<link href="resources/css/examples.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.x-grid3-td-fullName .x-grid3-cell-inner
{
font-family: tahoma, verdana;
display: block;
font-weight: normal;
font-style: normal;
color: #385F95;
white-space: normal;
}
.x-grid3-row-body p
{
margin: 5px 5px 10px 5px !important;
width: 99%;
color: Gray;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="width:600px;margin:10px auto">
<ext:ScriptManager ID="ScriptManager1" runat="server" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnString %>"
ProviderName="<%$ ConnectionStrings:ConnString.ProviderName %>"
SelectCommand="SELECT [EmployeeID], [LastName], [FirstName], [Title], [TitleOfCourtesy], [BirthDate], [HireDate], [Address], [City], [Region], [PostalCode], [Country], [HomePhone], [Extension], [Notes] FROM [Employees]"
DeleteCommand="DELETE FROM [Employees] WHERE [EmployeeID] = @EmployeeID"
InsertCommand="INSERT INTO [Employees] (
[LastName],
[FirstName],
[Title],
[TitleOfCourtesy],
[BirthDate],
[HireDate],
[Address],
[City],
[Region],
[PostalCode],
[Country],
[HomePhone],
[Extension],
[Notes])
VALUES
(@LastName,
@FirstName,
@Title,
@TitleOfCourtesy,
@BirthDate,
@HireDate,
@Address,
@City,
@Region,
@PostalCode,
@Country,
@HomePhone,
@Extension,
@Notes]);SELECT @newId = @@Identity;"
UpdateCommand="UPDATE [Employees] SET
[LastName] = @LastName,
[FirstName] = @FirstName,
[Title] = @Title,
[TitleOfCourtesy] = @TitleOfCourtesy,
[BirthDate] = @BirthDate,
[HireDate] = @HireDate,
[Address] = @Address,
[City] = @City,
[Region] = @Region,
[PostalCode] = @PostalCode,
[Country] = @Country,
[HomePhone] = @HomePhone,
[Extension] = @Extension,
[Notes] = @Notes
WHERE [EmployeeID] = @EmployeeID">
<DeleteParameters>
<asp:Parameter Name="EmployeeID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="Title" Type="String" />
<asp:Parameter Name="TitleOfCourtesy" Type="String" />
<asp:Parameter Name="BirthDate" Type="DateTime" />
<asp:Parameter Name="HireDate" Type="DateTime" />
<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="Region" Type="String" />
<asp:Parameter Name="PostalCode" Type="String" />
<asp:Parameter Name="Country" Type="String" />
<asp:Parameter Name="HomePhone" Type="String" />
<asp:Parameter Name="Extension" Type="String" />
<asp:Parameter Name="Notes" Type="String" />
<asp:Parameter Name="EmployeeID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="LastName" Type="String" />
<asp:Parameter Name="FirstName" Type="String" />
<asp:Parameter Name="Title" Type="String" />
<asp:Parameter Name="TitleOfCourtesy" Type="String" />
<asp:Parameter Name="BirthDate" Type="DateTime" />
<asp:Parameter Name="HireDate" Type="DateTime" />
<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="Region" Type="String" />
<asp:Parameter Name="PostalCode" Type="String" />
<asp:Parameter Name="Country" Type="String" />
<asp:Parameter Name="HomePhone" Type="String" />
<asp:Parameter Name="Extension" Type="String" />
<asp:Parameter Name="Notes" Type="String" />
<asp:Parameter Direction="Output" Name="newId" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<ext:Store ID="Store1" runat="server" DataSourceID="SqlDataSource1"
UseIdConfirmation="true"
OnAfterRecordUpdated="Store1_AfterRecordUpdated">
<Reader>
<ext:JsonReader ReaderID="EmployeeID">
<Fields>
<ext:RecordField Name="FirstName" />
<ext:RecordField Name="LastName" />
<ext:RecordField Name="Title" />
<ext:RecordField Name="TitleOfCourtesy" />
<ext:RecordField Name="BirthDate" Type="Date" />
<ext:RecordField Name="HireDate" Type="Date" />
<ext:RecordField Name="Address" />
<ext:RecordField Name="City" />
</Fields>
</ext:JsonReader>
</Reader>
<Listeners>
<LoadException Handler="Ext.Msg.alert('Suppliers - Load failed', e.message || e )" />
<CommitFailed Handler="Ext.Msg.alert('Suppliers - Commit failed', 'Reason: ' + msg)" />
<SaveException Handler="Ext.Msg.alert('Suppliers - Save failed', e.message || e)" />
<CommitDone Handler="Ext.Msg.alert('Suppliers - Commit', 'The data successfully saved');" />
</Listeners>
</ext:Store>
<ext:Panel BodyBorder="false"
ID="Panel1"
runat="server"
Height="500"
Header="false">
<Body>
<ext:FitLayout ID="FitLayout1" runat="server">
<ext:GridPanel
ID="GridPanel1"
runat="server"
Title="Employees"
Frame="true"
Width="600"
Collapsible="true"
StoreID="Store1">
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column ColumnID="fullName" Header="Full Name" Width="150" DataIndex="LastName">
<Editor>
<ext:TextField ID="TextField1" runat="server" />
</Editor>
</ext:Column>
<ext:Column DataIndex="Title" Header="Title" Width="150" />
<ext:Column DataIndex="TitleOfCourtesy" Header="Title Of Courtesy" Width="100" />
<ext:Column DataIndex="BirthDate" Header="BirthDate" Width="110">
<Renderer Fn="Ext.util.Format.dateRenderer('Y-m-d')" />
</ext:Column>
<ext:Column DataIndex="HireDate" Header="HireDate" Width="110">
<Renderer Fn="Ext.util.Format.dateRenderer('Y-m-d')" />
</ext:Column>
<ext:Column DataIndex="Address" Header="Address" Width="150" />
<ext:Column DataIndex="City" Header="City" Width="100" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" />
</SelectionModel>
<LoadMask ShowMask="false" />
<BottomBar>
<ext:PagingToolBar ID="PagingToolBar1" runat="server" PageSize="10" />
</BottomBar>
</ext:GridPanel>
</ext:FitLayout>
</Body>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="Save Records" Icon="Disk">
<Listeners>
<Click Handler="#{GridPanel1}.save();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnDelete" runat="server" Text="Delete selected records" Icon="Delete">
<Listeners>
<Click Handler="#{GridPanel1}.deleteSelected();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnInsert" runat="server" Text="Insert" Icon="Add">
<Listeners>
<Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPanel1}.startEditing(0, 0);" />
</Listeners>
</ext:Button>
<ext:Button ID="btnRefresh" runat="server" Text="Refresh" Icon="ArrowRefresh">
<Listeners>
<Click Handler="#{GridPanel1}.reload();" />
</Listeners>
</ext:Button>
<ext:Button ID="btnEmulError" runat="server" Text="Refresh with Emulator error" Icon="Exclamation">
<Listeners>
<Click Handler="#{GridPanel1}.reload({params:{EmulateError: 1}});" />
</Listeners>
</ext:Button>
</Buttons>
</ext:Panel>
</form>
</body>
</html>