2012-01-02 219 views
1

编辑的GridView的错误,我有如下因素的完整代码随着MSACCESS DB.I已经使用SQL中的解码功能query.When我按网格视图编辑按钮,它显示了如下因素误差与下拉列表

“DropDownList2网格视图“拥有的SelectedValue这是无效的,因为它没有在项目列表中存在 参数名称:值” 我的SQL数据源代码如下

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DataConnectionString2 %>" 
      DeleteCommand="DELETE FROM [EMAILS] WHERE [ID] = ?" InsertCommand="INSERT INTO [EMAILS] ([Email], [FULLNAME],[FLAG]) VALUES (?, ?, ?)" 
      ProviderName="<%$ ConnectionStrings:DataConnectionString2.ProviderName %>" SelectCommand="SELECT ID, Email, FULLNAME, switch(FLAG = 1, 'Allowed', Flag = 0, 'Not Allowed') AS FLAG FROM EMAILS" 
      UpdateCommand="UPDATE [EMAILS] SET [Email] = ?, [FULLNAME] = ?,[FLAG] = ? WHERE [ID] = ?"> 
      <DeleteParameters> 
       <asp:Parameter Name="ID" Type="Int32" /> 
      </DeleteParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="Email" Type="String" /> 
       <asp:Parameter Name="FULLNAME" Type="String" /> 
       <asp:Parameter Name="FLAG" Type="Int32" /> 
       <asp:Parameter Name="ID" Type="Int32" /> 
      </UpdateParameters> 
      <InsertParameters> 

       <asp:Parameter Name="Email" Type="String" /> 
       <asp:Parameter Name="FULLNAME" Type="String" /> 
       <asp:Parameter Name="FLAG" Type="Int32" /> 
      </InsertParameters> 
     </asp:SqlDataSource> 

和网格查看代码是波纹管

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" 
      AutoGenerateColumns="False" BackColor="White" BorderColor="#CC9966" BorderStyle="None" 
      BorderWidth="1px" CellPadding="4" DataKeyNames="ID" DataSourceID="SqlDataSource1" 
      HorizontalAlign="Center" Width="821px" EmptyDataText="No Emails Found"> 
      <RowStyle BackColor="White" Font-Names="Arial" Font-Size="Small" ForeColor="Black" /> 
      <Columns> 
       <asp:CommandField ButtonType="Button" ShowEditButton="True" ShowSelectButton="True" ShowDeleteButton="True" /> 
       <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" 
        SortExpression="ID" Visible="False" /> 
       <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" /> 
       <asp:BoundField DataField="FULLNAME" HeaderText="Full Name" SortExpression="FULLNAME" /> 
       <asp:TemplateField HeaderText="Flag" SortExpression="FLAG"> 
        <EditItemTemplate> 
         <asp:DropDownList ID="DropDownList2" runat="server" SelectedValue="<%# Bind('FLAG') %>" AppendDataBoundItems="True"> 
          <asp:ListItem Value="1">Allowed</asp:ListItem> 
          <asp:ListItem Value="0">Not Allowed</asp:ListItem> 
         </asp:DropDownList> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("FLAG") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
      <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" /> 
      <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" /> 
      <HeaderStyle BackColor="#990000" Font-Bold="True" Font-Names="Arial" Font-Size="Small" 
       ForeColor="#FFFFCC" HorizontalAlign="Center" /> 
      <EmptyDataRowStyle BackColor="#804000" Font-Names="Arial" Font-Size="Small" ForeColor="White" /> 
     </asp:GridView> 

请告诉我什么是可能的错误这里

+0

请任何人回答我的问题 – 2012-01-02 07:25:49

回答

1

入住天气在现场你想编辑的行的flag的价值,是在EditItemTemplate中

DropDownList的

可用并尝试在DropDownList中去除AppendDataBoundItems="True" EditItemTemplate

+0

先生我添加实际值Db在Dropdwon现在它工作正常在IIS上,但是当我上传它在FTP服务器然后它Generat这个错误,当我更新网格“操作必须使用可更新的查询“。我能为此做些什么? – 2012-01-03 04:04:22

+0

@ user1099825试试这个http://www.eukhost.com/forums/f15/fix-operation-must-use-updateable-query-error-5635/ – Nalaka526 2012-01-03 04:54:44

+0

从上面的网站:要解决这个问题,请右键点击文件夹其中包含Microsoft Access数据库并选择属性。使用资源管理器中的“安全”选项卡调整此文件夹的属性,以便Internet来宾帐户具有正确的可写入权限。 – Nalaka526 2012-01-03 04:55:23