0

これは gridview updatecommand の作業バージョンです

 <asp:SqlDataSource ID="MatchDataSource" runat="server" SelectCommand="SELECT * FROM [dbo].[SYR1]"
        UpdateCommand="UPDATE [dbo].[SYR1] SET Fname = @Fname
        WHERE ID=@ID 
    ConnectionString="<%$ ConnectionStrings:ApplicationServices %>">
        <UpdateParameters>
            <asp:Parameter Type="String" Name="Fname" />
            <asp:Parameter Type="String" Name="Lname" />
            <asp:Parameter Type="String" Name="ID" />
        </UpdateParameters>
    </asp:SqlDataSource>

<Columns>
    <asp:CommandField ShowEditButton="True"></asp:CommandField>
    <asp:BoundField ReadOnly="true" HeaderText="First Name"  DataField="fname" SortExpression="fname"><ItemStyle HorizontalAlign="Right"></ItemStyle></asp:BoundField>
    <asp:BoundField ReadOnly="false" HeaderText="Last Name" DataField="lname"    SortExpression="lname"><ItemStyle HorizontalAlign="Right"></ItemStyle> </asp:BoundField>
</Columns>

私が抱えている問題は、データベースの列に 2 つの名前があることです。つまり、"fname" の代わりに "First Name" があります。データフィールドは問題なく、2 語の列名を取ります

<asp:BoundField ReadOnly="true" HeaderText="First Name"  DataField="First Name" SortExpression="fname"><ItemStyle HorizontalAlign="Right"></ItemStyle></asp:BoundField>

問題は、2 ワードのパラメーターを保存できないことです。そのため、更新を機能させる方法がわかりません... 以下は失敗した試みです。誰でも私を助けてくれませんか。

UpdateCommand="UPDATE [dbo].[SYR1] SET [First Name] = @First name
        WHERE ID=@ID 
    ConnectionString="<%$ ConnectionStrings:ApplicationServices %>">
        <UpdateParameters>
            <asp:Parameter Type="String" Name="First Name" />
            <asp:Parameter Type="String" Name="Last Name" />
            <asp:Parameter Type="String" Name="ID" />
        </UpdateParameters>
4

2 に答える 2

1

ルールについては、リンクを参照して ください http://msdn.microsoft.com/en-us/library/aa223962.aspx

埋め込みスペースまたは特殊文字は使用できません。

パラメータ名を変更します。

UpdateCommand="UPDATE [dbo].[SYR1] SET [First Name] = @FirstName
        WHERE ID=@ID 
    ConnectionString="<%$ ConnectionStrings:ApplicationServices %>">
        <UpdateParameters>
            <asp:Parameter Type="String" Name="FirstName" />
            <asp:Parameter Type="String" Name="LastName" />
            <asp:Parameter Type="String" Name="ID" />
        </UpdateParameters>
于 2012-06-22T11:29:40.577 に答える
1

解決策 1

UpdateCommand="UPDATE [dbo].[SYR1] SET [First Name] = @First name
        WHERE ID=@ID 
    ConnectionString="<%$ ConnectionStrings:ApplicationServices %>">
        <UpdateParameters>
            <asp:Parameter Type="String" Name="[First Name]" />
            <asp:Parameter Type="String" Name="[Last Name]" />
            <asp:Parameter Type="String" Name="ID" />
        </UpdateParameters>

うまくいかない場合は、エイリアシングを使用できます。

解決策 2

Select [First Name] as Fname, ...
from tableName
于 2012-06-22T11:30:17.017 に答える