У меня есть gridview, у которого есть метка и 3 флажка с кнопкой «Редактировать», но когда я пытаюсь отредактировать одну из строк в моем gridview, я получаю эту ошибку. System.Data.SqlClient.SqlException: Должен объявить скалярную переменную «@ chkBeg1». вот мой код:Должен объявить скалярную переменную «@ chkBeg1»
<asp:GridView class="gridview" ID="GridView1" runat="server" AutoGenerateColumns="false"
DataKeyNames="id" SkinID="Professional" Font-Name="Verdana"
Font-Size="10pt" Cellpadding="4"
HeaderStyle-BackColor="#109a50"
HeaderStyle-ForeColor="White"
AlternatingRowStyle-BackColor="#dddddd" DataSourceID="SqlDataSource1" >
<Columns>
<asp:BoundField DataField="language" HeaderText="language"
SortExpression="language" />
<asp:TemplateField HeaderText="Beginner">
<ItemTemplate>
<asp:CheckBox ID="chkBeg" runat="server" Checked ='<%# GetStatus(Eval("Beginner")) %>' Enabled="False" onclick="CheckBoxCheck(this);" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkBeg1" runat="server" Checked='<%# GetStatus(Eval("Beginner")) %>' Enabled="True" onclick="CheckBoxCheck(this);" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Intermediate">
<ItemTemplate>
<asp:CheckBox ID="chkIn" runat="server" Checked ='<%# GetStatus(Eval("Intermediate")) %>' Enabled="False" onclick="CheckBoxCheck(this);" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkIn1" runat="server" Checked='<%# GetStatus(Eval("Intermediate")) %>' Enabled="True" onclick="CheckBoxCheck(this);" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Advance">
<ItemTemplate>
<asp:CheckBox ID="chkAd" runat="server" Checked ='<%# GetStatus(Eval("Advance")) %>' Enabled="False" onclick="CheckBoxCheck(this);" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkAd1" runat="server" Checked='<%# GetStatus(Eval("Advance")) %>' Enabled="True" onclick="CheckBoxCheck(this);" />
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
Вот код моей кнопки редактирования:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Data Source=db2.sescor.net;Initial Catalog=SDMS_PORTAL;User ID=sdmsusr;[email protected]"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT id, Idno, language, beginner, intermediate, advance FROM [sample_skills]" FilterExpression="Idno = '{0}'"
UpdateCommand="UPDATE [sample_skills] SET
[beginner] = @chkBeg1, [intermediate] = @chkIn1,[advance] = @chkAd1
WHERE [id] = @id">
<FilterParameters>
<asp:ControlParameter Name="skills" ControlID="label9" PropertyName="Text" />
</FilterParameters>
</asp:SqlDataSource>
Спасибо.
Пожалуйста, вы можете добавить больше деталей .. – Emz1402
почему его PropertyName является «Текст» .. он должен содержать только True или False, потому что это флажок. – Emz1402
ok, проверить ответ снова.i обновлен. –