1
我想向Infragistics網格中插入一行。它有2列,ID和名稱。兩者都有約束。但是,當我插入我只想使用名稱列作爲參數。但是當我同時使用時,插入工作。我有ID作爲參數,但我不使用它,因爲它是一個標識列。當我只使用'名稱'時,出現錯誤,存儲過程的參數太多。SqlDataSource插入錯誤 - 參數太多
這是標記:
<ig:WebHierarchicalDataGrid runat="server" height="600px" width="875px"
ClientIDMode="Static" AutoGenerateBands="False"
AutoGenerateColumns="False" DataKeyFields="ID"
DataMember="SqlDataSource9_DefaultView" StyleSetName="Windows7"
ID="wdgPrivileges"
DataSourceID="WebHierarchicalDataSource7" Key="SqlDataSource9_DefaultView">
<Columns>
<ig:BoundDataField DataFieldName="ID" Key="ID" Hidden="true">
<Header Text="ID" />
<header text="ID" />
</ig:BoundDataField>
<ig:BoundDataField DataFieldName="Name" Key="Name" Width="95%">
<Header Text="Name" />
<header text="Name" />
</ig:BoundDataField>
</Columns>
</ig:WebHierarchicalDataGrid>
<asp:SqlDataSource ID="SqlDataSource13" runat="server"
ConnectionString="<%$ ConnectionStrings %>"
SelectCommand="GetPrivilege" SelectCommandType="StoredProcedure"
UpdateCommand="SetPrivilege" UpdateCommandType="StoredProcedure"
InsertCommand="InsPrivilege" InsertCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="Name" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="Name" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
我的存儲過程:
PROCEDURE [dbo].[InsPrivilege]
@Name varchar(50)
AS
Begin
INSERT INTO Privilege ([Name], LastUpdate)
VALUES (@Name, GetDate())
end
我需要的ID被開往更新SQL命令。
我必須把它作爲插件還一個參數,只是沒有用呢?
UPDATE
<ig:WebHierarchicalDataSource ID="WebHierarchicalDataSource7" runat="server">
<DataViews>
<ig:DataView ID="SqlDataSource9_DefaultView" DataMember="DefaultView"
DataSourceID="SqlDataSource13" />
</DataViews>
</ig:WebHierarchicalDataSource>
UPDATE 這是更新並選擇存儲過程的信息...
<asp:SqlDataSource ID="SqlDataSource13" runat="server"
ConnectionString="<%$ ConnectionStrings %>"
SelectCommand="GetPrivilege" SelectCommandType="StoredProcedure"
UpdateCommand="SetPrivilege" UpdateCommandType="StoredProcedure"
InsertCommand="dmInsPrivilege" InsertCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="Name" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="ID" Type="Int32" DefaultValue="0" />
<asp:Parameter Name="Name" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
選擇存儲過程:
PROCEDURE [dbo].[GetPrivilege]
AS
Begin
SELECT ID, [Name]
FROM Privilege with (nolock)
end
更新存儲過程:
PROCEDURE [dbo].[SetPrivilege]
@ID int,
@Name varchar(50)
AS
Begin
UPDATE Privilege
SET [Name] = @Name, LastUpdate = GetDate()
WHERE ID = @ID
end
錯誤消息: [SQLEXCEPTION]:過程或功能InsPrivilege具有指定的參數太多。
向我們展示完整的異常消息,並且向我們展示'UpdPrivileges'存儲過程。 –
我想你給了我們'SqlDataSource13'的代碼,但是你的網格使用'WebHierarchicalDataSource7';)。 –
WebHierarchicalDataSource7是使用SqlDataSource13的DataSourceID定義的。它在上面。 –