2012-03-21 36 views
0

私の無知を許してください。私は少しウェブプログラミングをやったことがありますが、ASP.NETを初めて使っていて、箱から何かをやろうとしたときにそれが謎になっています。ASP.NET:テーブルから照会するDetailsViewを制御するために、GridViewで使用されるSQL Serverビューに対してクエリのIDを使用します。

私は、SQL Serverビューからデータを取得するGridViewを持っています。私はテーブル内のデータを操作する必要があるDetailsViewを持っています。 GridViewをDetailsViewに正しくリンクする方法を理解できません。

以下は、GridViewとDetailsViewを含むaspxページのセクションのコードです。無限のエラー処理における最新のエラーは次のとおりです。スカラー変数 "@ID"を宣言しなければなりません。

誰もが提供できるヘルプをいただければ幸いです。ありがとう。

<asp:GridView ID="gvVendorContacts" runat="server" AutoGenerateColumns="False" 
    DataSourceID="dsApplications_Contacts" AllowSorting="True" CellPadding="4" CellSpacing="2" AutoGenerateSelectButton="True" DataKeyNames="ContactID" 
    onselectedindexchanged="gvVendorContacts_SelectedIndexChanged"> 
    <AlternatingRowStyle BackColor="#E8F3FF" /> 
    <Columns> 
     <asp:BoundField DataField="FullName" HeaderText="Name" ReadOnly="True" 
      SortExpression="FullName" /> 
     <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> 
     <asp:BoundField DataField="Role" HeaderText="Role" SortExpression="Role" /> 
     <asp:BoundField DataField="Office Phone" HeaderText="Office Phone" 
      SortExpression="Office Phone" /> 
     <asp:BoundField DataField="Mobile Phone" HeaderText="Mobile Phone" 
      SortExpression="Mobile Phone" /> 
     <asp:TemplateField HeaderText="Email" SortExpression="Email"> 
      <ItemTemplate> 
       <a href="Mailto:<%# Eval("Email") %>"><%#Eval("Email")%></a> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="dsApplications_Contacts" runat="server" 
    ConnectionString="<%$ ConnectionStrings:MDSConnectionString %>" 
    SelectCommand="SELECT [ApplicationID], [ContactID], [FName], [LName], [FullName], [Title], [Role], [OfficePhone] As [Office Phone], [MobilePhone] As [Mobile Phone], [Email] FROM [vw_Applications_Contacts] WHERE ApplicationName = 'Bloomberg'"> 
</asp:SqlDataSource> 




<asp:DetailsView ID="dvVendorContacts" runat="server" AutoGenerateRows="False" 
    DataKeyNames="ID" DataSourceID="dsVendorContacts" Height="100px" 
    Width="200px" BackColor="White" BorderColor="#CC9966" BorderStyle="None" 
    BorderWidth="1px" CellPadding="4"> 
    <EditRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" /> 
    <Fields> 
     <asp:BoundField DataField="ContactID" HeaderText="ID" InsertVisible="False" 
      ReadOnly="True" SortExpression="ID" /> 
     <asp:BoundField DataField="FName" HeaderText="FName" SortExpression="FName" /> 
     <asp:BoundField DataField="LName" HeaderText="LName" SortExpression="LName" /> 
     <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> 
     <asp:BoundField DataField="Role" HeaderText="Role" SortExpression="Role" /> 
     <asp:BoundField DataField="OfficePhone" HeaderText="OfficePhone" 
      SortExpression="OfficePhone" /> 
     <asp:BoundField DataField="MobilePhone" HeaderText="MobilePhone" 
      SortExpression="MobilePhone" /> 
     <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" /> 
    </Fields> 
    <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" /> 
    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" /> 
    <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" /> 
    <RowStyle BackColor="White" ForeColor="#330099" /> 
</asp:DetailsView> 

<asp:SqlDataSource ID="dsVendorContacts" runat="server" 
    ConnectionString="<%$ ConnectionStrings:MDSConnectionString %>" 
    DeleteCommand="DELETE FROM [Contacts] WHERE [ID] = @ID" 
    InsertCommand="INSERT INTO [Contacts] ([FName], [LName], [Title], [Role], [OfficePhone], [MobilePhone], [Email]) VALUES (@FName, @LName, @Title, @Role, @OfficePhone, @MobilePhone, @Email)" 
    SelectCommand="SELECT [ID], [FName], [LName], [Title], [Role], [OfficePhone], [MobilePhone], [Email] FROM [Contacts] WHERE ([ID] = @ID)" 
    UpdateCommand="UPDATE [Contacts] SET [FName] = @FName, [LName] = @LName, [Title] = @Title, [Role] = @Role, [OfficePhone] = @OfficePhone, [MobilePhone] = @MobilePhone, [Email] = @Email WHERE [ID] = @ID"> 
    <DeleteParameters> 
     <asp:Parameter Name="ID" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="FName" Type="String" /> 
     <asp:Parameter Name="LName" Type="String" /> 
     <asp:Parameter Name="Title" Type="String" /> 
     <asp:Parameter Name="Role" Type="String" /> 
     <asp:Parameter Name="OfficePhone" Type="String" /> 
     <asp:Parameter Name="MobilePhone" Type="String" /> 
     <asp:Parameter Name="Email" Type="String" /> 
    </InsertParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="FName" Type="String" /> 
     <asp:Parameter Name="LName" Type="String" /> 
     <asp:Parameter Name="Title" Type="String" /> 
     <asp:Parameter Name="Role" Type="String" /> 
     <asp:Parameter Name="OfficePhone" Type="String" /> 
     <asp:Parameter Name="MobilePhone" Type="String" /> 
     <asp:Parameter Name="Email" Type="String" /> 
     <asp:Parameter Name="ID" Type="Int32" /> 
    </UpdateParameters> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="gvVendorContacts" DefaultValue="NULL" 
     Name="ContactID" PropertyName="SelectedValue" Type="Int32" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

答えて

0

selectステートメントが@IDを想定していますが、SelectParameterがContactIdのようです。

関連する問題