Команда обновления Gridview не работает с 2 столбцами базы данных
Вот рабочая версия команды обновления gridview
<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" у меня есть "Имя". Поле данных в порядке и займет имя столбца из 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>
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>
Если это не работает, то вы можете использовать псевдонимы,
Решение второе
Select [First Name] as Fname, ...
from tableName
Ссылка на ссылку для правил 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>