Hi
the demo -Grid- MultiColumnEditForm run fine on my computer.
Now I have my own database-Northwind and I want to use sqldatasource instead of sessiondatasource.
I copied all the code into my project except datasource, the error:
Employee 3 cannot be updated. Reason: Must declare the scalar variable "@EmployeeID". shows after I click on update.
I searched the internet which normally say that you need to put DataKeyNames="EmployeeID" into grid. I think I have it. so what is wrong?
My code here(I didn't change the insert and delete command code), I did it using wizard before it give me silence to not update( no exception): Thanks for any help.
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<style type="text/css">
.EditFormHeader td
{
background: #dadec8;
padding: 5px 0px;
}
</style>
</head>
<body class="BODY">
<form runat="server" id="mainForm" method="post" style="width: 100%">
<!-- content start -->
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function RowDblClick(sender, eventArgs)
{
sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
}
</script>
</telerik:RadCodeBlock>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" />
<telerik:AjaxUpdatedControl ControlID="divMsg" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<div id="divMsg" runat="server" style="float: left;">
<asp:Label ID="Label1" runat="server" EnableViewState="False" Visible="false"></asp:Label>
</div>
<telerik:RadSlider ID="RadSlider1" runat="server">
</telerik:RadSlider>
<br />
<telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" runat="server" ShowStatusBar="True"
GridLines="None" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
OnPreRender="RadGrid1_PreRender" AllowAutomaticDeletes="True" AllowAutomaticInserts="True"
AllowAutomaticUpdates="True" OnItemDeleted="RadGrid1_ItemDeleted"
OnItemInserted="RadGrid1_ItemInserted"
OnItemUpdated="RadGrid1_ItemUpdated" >
<MasterTableView DataKeyNames="EmployeeID" GridLines="None" Width="100%">
<Columns>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn">
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="Country" HeaderText="Country"
DataField="Country" EditFormColumnIndex="1">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="City" HeaderText="City" DataField="City"
EditFormColumnIndex="1">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="Region" HeaderText="Region"
DataField="Region" EditFormColumnIndex="2">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="TitleOfCourtesy" HeaderText="TOC"
DataField="TitleOfCourtesy" EditFormColumnIndex="2">
<HeaderStyle Width="60px"></HeaderStyle>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="FirstName" EditFormColumnIndex="0" HeaderText="FirstName"
DataField="FirstName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="LastName" EditFormColumnIndex="0" HeaderText="LastName"
DataField="LastName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="HireDate" EditFormColumnIndex="0"
HeaderText="Hire Date" DataField="HireDate">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="Title" EditFormColumnIndex="1" HeaderText="Title"
DataField="Title">
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings ColumnNumber="3" CaptionFormatString="Edit details for employee with ID {0}"
CaptionDataField="EmployeeID">
<FormTableItemStyle Wrap="False"></FormTableItemStyle>
<FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle>
<FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="3" Width="100%" />
<FormTableStyle GridLines="Horizontal" CellSpacing="0" CellPadding="2" CssClass="module"
Height="110px" Width="100%" />
<FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle>
<FormStyle Width="100%" BackColor="#eef2ea"></FormStyle>
<EditColumn UpdateText="Update record" UniqueName="EditCommandColumn1" CancelText="Cancel edit">
</EditColumn>
<FormTableButtonRowStyle HorizontalAlign="Left" CssClass="EditFormButtonRow"></FormTableButtonRowStyle>
</EditFormSettings>
<ExpandCollapseColumn ButtonType="ImageButton" Visible="False" UniqueName="ExpandColumn">
<HeaderStyle Width="19px"></HeaderStyle>
</ExpandCollapseColumn>
</MasterTableView>
<ClientSettings>
<ClientEvents OnRowDblClick="RowDblClick" />
</ClientSettings>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" DeleteCommand="DELETE FROM [Employees] WHERE [EmployeeID] = ? AND [LastName] = ? AND [FirstName] = ? AND [Title] = ? AND [TitleOfCourtesy] = ? AND [BirthDate] = ? AND [HireDate] = ? AND [Address] = ? AND [City] = ? AND [Region] = ? AND [PostalCode] = ? AND [Notes] = ? AND [Country] = ? AND [HomePhone] = ? AND [Extension] = ? AND [ReportsTo] = ?"
InsertCommand="INSERT INTO [Employees] ([EmployeeID], [LastName], [FirstName], [Title], [TitleOfCourtesy], [BirthDate], [HireDate], [Address], [City], [Region], [PostalCode], [Notes], [Country], [HomePhone], [Extension], [ReportsTo]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [EmployeeID], [LastName], [FirstName], [Title], [TitleOfCourtesy], [BirthDate], [HireDate], [Address], [City], [Region], [PostalCode], [Notes], [Country], [HomePhone], [Extension], [ReportsTo] FROM [Employees]"
UpdateCommand="UPDATE [Employees] SET [LastName] =@LastName, [FirstName] =@FirstName, [Title] =@Title, [TitleOfCourtesy] =@TitleOfCourtesy, [BirthDate] = @BirthDate, [HireDate] = @HireDate, [Address] =@Address, [City] =@City, [Region] =@Region, [PostalCode] =@PostalCode, [Notes] = @Notes, [Country] =@Country, [HomePhone] = @HomePhone, [Extension] =@Extension, [ReportsTo] = @ReportsTo WHERE [EmployeeID] = @EmployeeID AND [LastName] =LastName AND [FirstName] = @FirstName AND [Title] = @Title AND [TitleOfCourtesy] =@TitleOfCourtesy AND [BirthDate] = @BirthDate AND [HireDate] = @HireDate AND [Address] = @Address AND [City] = @City AND [Region] = @Region AND [PostalCode] = @PostalCode AND [Notes] = @Notes AND [Country] = @Country AND [HomePhone] = @HomePhone AND [Extension] = @Extension AND [ReportsTo] = @ReportsTo">
<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="Notes" Type="String" />
<asp:Parameter Name="Country" Type="String" />
<asp:Parameter Name="HomePhone" Type="String" />
<asp:Parameter Name="Extension" Type="String" />
<asp:Parameter Name="ReportsTo" Type="Int32" />
<asp:Parameter Name="EmployeeID" />
</UpdateParameters>
</asp:SqlDataSource>
<!-- content end -->
</form>
</body>
</html>
the demo -Grid- MultiColumnEditForm run fine on my computer.
Now I have my own database-Northwind and I want to use sqldatasource instead of sessiondatasource.
I copied all the code into my project except datasource, the error:
Employee 3 cannot be updated. Reason: Must declare the scalar variable "@EmployeeID". shows after I click on update.
I searched the internet which normally say that you need to put DataKeyNames="EmployeeID" into grid. I think I have it. so what is wrong?
My code here(I didn't change the insert and delete command code), I did it using wizard before it give me silence to not update( no exception): Thanks for any help.
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<style type="text/css">
.EditFormHeader td
{
background: #dadec8;
padding: 5px 0px;
}
</style>
</head>
<body class="BODY">
<form runat="server" id="mainForm" method="post" style="width: 100%">
<!-- content start -->
<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager>
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function RowDblClick(sender, eventArgs)
{
sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical());
}
</script>
</telerik:RadCodeBlock>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" />
<telerik:AjaxUpdatedControl ControlID="divMsg" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<div id="divMsg" runat="server" style="float: left;">
<asp:Label ID="Label1" runat="server" EnableViewState="False" Visible="false"></asp:Label>
</div>
<telerik:RadSlider ID="RadSlider1" runat="server">
</telerik:RadSlider>
<br />
<telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" runat="server" ShowStatusBar="True"
GridLines="None" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
OnPreRender="RadGrid1_PreRender" AllowAutomaticDeletes="True" AllowAutomaticInserts="True"
AllowAutomaticUpdates="True" OnItemDeleted="RadGrid1_ItemDeleted"
OnItemInserted="RadGrid1_ItemInserted"
OnItemUpdated="RadGrid1_ItemUpdated" >
<MasterTableView DataKeyNames="EmployeeID" GridLines="None" Width="100%">
<Columns>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn">
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="Country" HeaderText="Country"
DataField="Country" EditFormColumnIndex="1">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="City" HeaderText="City" DataField="City"
EditFormColumnIndex="1">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="Region" HeaderText="Region"
DataField="Region" EditFormColumnIndex="2">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="TitleOfCourtesy" HeaderText="TOC"
DataField="TitleOfCourtesy" EditFormColumnIndex="2">
<HeaderStyle Width="60px"></HeaderStyle>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="FirstName" EditFormColumnIndex="0" HeaderText="FirstName"
DataField="FirstName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="LastName" EditFormColumnIndex="0" HeaderText="LastName"
DataField="LastName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn Visible="False" UniqueName="HireDate" EditFormColumnIndex="0"
HeaderText="Hire Date" DataField="HireDate">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="Title" EditFormColumnIndex="1" HeaderText="Title"
DataField="Title">
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings ColumnNumber="3" CaptionFormatString="Edit details for employee with ID {0}"
CaptionDataField="EmployeeID">
<FormTableItemStyle Wrap="False"></FormTableItemStyle>
<FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle>
<FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="3" Width="100%" />
<FormTableStyle GridLines="Horizontal" CellSpacing="0" CellPadding="2" CssClass="module"
Height="110px" Width="100%" />
<FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle>
<FormStyle Width="100%" BackColor="#eef2ea"></FormStyle>
<EditColumn UpdateText="Update record" UniqueName="EditCommandColumn1" CancelText="Cancel edit">
</EditColumn>
<FormTableButtonRowStyle HorizontalAlign="Left" CssClass="EditFormButtonRow"></FormTableButtonRowStyle>
</EditFormSettings>
<ExpandCollapseColumn ButtonType="ImageButton" Visible="False" UniqueName="ExpandColumn">
<HeaderStyle Width="19px"></HeaderStyle>
</ExpandCollapseColumn>
</MasterTableView>
<ClientSettings>
<ClientEvents OnRowDblClick="RowDblClick" />
</ClientSettings>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" DeleteCommand="DELETE FROM [Employees] WHERE [EmployeeID] = ? AND [LastName] = ? AND [FirstName] = ? AND [Title] = ? AND [TitleOfCourtesy] = ? AND [BirthDate] = ? AND [HireDate] = ? AND [Address] = ? AND [City] = ? AND [Region] = ? AND [PostalCode] = ? AND [Notes] = ? AND [Country] = ? AND [HomePhone] = ? AND [Extension] = ? AND [ReportsTo] = ?"
InsertCommand="INSERT INTO [Employees] ([EmployeeID], [LastName], [FirstName], [Title], [TitleOfCourtesy], [BirthDate], [HireDate], [Address], [City], [Region], [PostalCode], [Notes], [Country], [HomePhone], [Extension], [ReportsTo]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [EmployeeID], [LastName], [FirstName], [Title], [TitleOfCourtesy], [BirthDate], [HireDate], [Address], [City], [Region], [PostalCode], [Notes], [Country], [HomePhone], [Extension], [ReportsTo] FROM [Employees]"
UpdateCommand="UPDATE [Employees] SET [LastName] =@LastName, [FirstName] =@FirstName, [Title] =@Title, [TitleOfCourtesy] =@TitleOfCourtesy, [BirthDate] = @BirthDate, [HireDate] = @HireDate, [Address] =@Address, [City] =@City, [Region] =@Region, [PostalCode] =@PostalCode, [Notes] = @Notes, [Country] =@Country, [HomePhone] = @HomePhone, [Extension] =@Extension, [ReportsTo] = @ReportsTo WHERE [EmployeeID] = @EmployeeID AND [LastName] =LastName AND [FirstName] = @FirstName AND [Title] = @Title AND [TitleOfCourtesy] =@TitleOfCourtesy AND [BirthDate] = @BirthDate AND [HireDate] = @HireDate AND [Address] = @Address AND [City] = @City AND [Region] = @Region AND [PostalCode] = @PostalCode AND [Notes] = @Notes AND [Country] = @Country AND [HomePhone] = @HomePhone AND [Extension] = @Extension AND [ReportsTo] = @ReportsTo">
<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="Notes" Type="String" />
<asp:Parameter Name="Country" Type="String" />
<asp:Parameter Name="HomePhone" Type="String" />
<asp:Parameter Name="Extension" Type="String" />
<asp:Parameter Name="ReportsTo" Type="Int32" />
<asp:Parameter Name="EmployeeID" />
</UpdateParameters>
</asp:SqlDataSource>
<!-- content end -->
</form>
</body>
</html>