web-dev-qa-db-ja.com

「値はnullパラメータ名にできません:キー」

作業中のWebサイトをデバッグすると、「死の黄色の画面」が表示されます。エラーメッセージは、「値をnullにすることはできません。パラメータ名:キー」です。 formviewをgridviewの選択されたインデックスにバインドしようとしています。 selectedindexchangedメソッドでブレークポイントを設定すると、すべてが正しくバインドされているように見えますが、formviewの値を表示できますが、実行を続けると、上記のエラーメッセージが表示されます。 dataviewnamesプロパティをformviewに追加しようとすると、同じエラーメッセージが表示されます。私はこことグーグルで検索していくつかの結果を確認しましたが、私の問題を修正または関連しているようには見えません。

いくつかのコードは以下の通りです:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    lblMessage.Text = "";
    cbCalled.Visible = true;
    cbError.Visible = true;
    cbVerbal.Visible = true;
    btnSubmit.Visible = true;
    FormView1.Visible = true;
    FormView1.DataBind();
    FormView fv1 = FormView1;
    Label PathCountLabel = (Label)fv1.FindControl("pathcountLabel");
    TextBox PathResult = (TextBox)fv1.FindControl("PathResultLabel");
    if ((PathCountLabel.Text != "1 of 1 biopsies") && (PathCountLabel.Text != "Only 1 Pathology Ordered"))
    {
        PathResult.BackColor = ColorTranslator.FromHtml("#FFFFAA");
    }
}

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        Visible="False" DataKeyNames="PatientID" DataSourceID="SqlDataSource1" 
        onselectedindexchanged="GridView1_SelectedIndexChanged" AllowSorting="True" onsorting="GridView1_Sorting">
    <Columns>
        <asp:CommandField ShowSelectButton="True" />
        <asp:BoundField DataField="PatientID" HeaderText="Patient Id" SortExpression="PatientID" />
        <asp:BoundField DataField="LastName" HeaderText="Last Name" 
            SortExpression="LastName" />
        <asp:BoundField DataField="FirstName" HeaderText="First Name" 
            SortExpression="FirstName" />
        <asp:BoundField DataField="PathCount" HeaderText="Path Count" 
            SortExpression="PathCount" />
        <asp:BoundField DataField="DateOfService" DataFormatString="{0:d}" 
            HeaderText="Date of Service" SortExpression="DateOfService" />
    </Columns>
</asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:PathologyConnectionString %>" 
        SelectCommand="SELECT * FROM [PatientDB]">
    </asp:SqlDataSource>
<br />
</div>
<div id="rightCol">
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource2" 
    Width="708px">
    <EditItemTemplate>
        LastName:
        <asp:TextBox ID="LastNameTextBox" runat="server" 
            Text='<%# Bind("LastName") %>' />
        <br />
        FirstName:
        <asp:TextBox ID="FirstNameTextBox" runat="server" 
            Text='<%# Bind("FirstName") %>' />
        <br />
        DOB:
        <asp:TextBox ID="DOBTextBox" runat="server" 
            Text='<%# Bind("DOB") %>' />
        <br />
        PhoneNumber:
        <asp:TextBox ID="PhoneNumberTextBox" runat="server" 
            Text='<%# Bind("PhoneNumber") %>' />
        <br />
        ChartNumber:
        <asp:TextBox ID="ChartNumberTextBox" runat="server" 
            Text='<%# Bind("ChartNumber") %>' />
        <br />
        AccountNumber:
        <asp:TextBox ID="AccountNumberTextBox" runat="server" 
            Text='<%# Bind("AccountNumber") %>' />
        <br />
        PathResult:
        <asp:TextBox ID="PathResultTextBox" runat="server" 
            Text='<%# Bind("PathResult") %>' />
        <br />
        PreviousVisitNote:
        <asp:TextBox ID="PreviousVisitNoteTextBox" runat="server" 
            Text='<%# Bind("PreviousVisitNote") %>' />
        <br />
        PathSlipNote:
        <asp:TextBox ID="PathSlipNoteTextBox" runat="server" 
            Text='<%# Bind("PathSlipNote") %>' />
        <br />
        PathSlipCheckboxes:
        <asp:TextBox ID="PathSlipCheckboxesTextBox" runat="server" 
            Text='<%# Bind("PathSlipCheckboxes") %>' />
        <br />
        <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
            CommandName="Update" Text="Update" />
        &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
            CausesValidation="False" CommandName="Cancel" Text="Cancel" />
    </EditItemTemplate>
    <InsertItemTemplate>
        LastName:
        <asp:TextBox ID="LastNameTextBox" runat="server" 
            Text='<%# Bind("LastName") %>' />
        <br />
        FirstName:
        <asp:TextBox ID="FirstNameTextBox" runat="server" 
            Text='<%# Bind("FirstName") %>' />
        <br />
        DOB:
        <asp:TextBox ID="DOBTextBox" runat="server" 
            Text='<%# Bind("DOB") %>' />
        <br />
        PhoneNumber:
        <asp:TextBox ID="PhoneNumberTextBox" runat="server" 
            Text='<%# Bind("PhoneNumber") %>' />
        <br />
        ChartNumber:
        <asp:TextBox ID="ChartNumberTextBox" runat="server" 
            Text='<%# Bind("ChartNumber") %>' />
        <br />
        AccountNumber:
        <asp:TextBox ID="AccountNumberTextBox" runat="server" 
            Text='<%# Bind("AccountNumber") %>' />
        <br />
        PathResult:
        <asp:TextBox ID="PathResultTextBox" runat="server" 
            Text='<%# Bind("PathResult") %>' />
        <br />
        PreviousVisitNote:
        <asp:TextBox ID="PreviousVisitNoteTextBox" runat="server" 
            Text='<%# Bind("PreviousVisitNote") %>' />
        <br />
        PathSlipNote:
        <asp:TextBox ID="PathSlipNoteTextBox" runat="server" 
            Text='<%# Bind("PathSlipNote") %>' />
        <br />
        PathSlipCheckboxes:
        <asp:TextBox ID="PathSlipCheckboxesTextBox" runat="server" 
            Text='<%# Bind("PathSlipCheckboxes") %>' />
        <br />
        <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" 
            CommandName="Insert" Text="Insert" />
        &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" 
            CausesValidation="False" CommandName="Cancel" Text="Cancel" />
    </InsertItemTemplate>
    <ItemTemplate>
        Last Name:
        <asp:Label ID="LastNameLabel" runat="server" Text='<%# Bind("LastName") %>' />
        &nbsp;&nbsp;&nbsp;&nbsp; First Name:
        <asp:Label ID="FirstNameLabel" runat="server" Text='<%# Bind("FirstName") %>' />
        &nbsp;&nbsp;&nbsp;&nbsp; DOB:
        <asp:Label ID="DOBLabel" runat="server" Text='<%# Bind("DOB") %>' />
        &nbsp;&nbsp;
        <br />
        <br />
        Phone Number:
        <asp:Label ID="PhoneNumberLabel" runat="server" 
            Text='<%# Bind("PhoneNumber") %>' />
        &nbsp;&nbsp;&nbsp;&nbsp; Chart Number:
        <asp:Label ID="ChartNumberLabel" runat="server" 
            Text='<%# Bind("ChartNumber") %>' />
        &nbsp;&nbsp;&nbsp; Account Number:
        <asp:Label ID="AccountNumberLabel" runat="server" 
            Text='<%# Bind("AccountNumber") %>' />
        <br />
        <br />
        Biopsy Location:
        <asp:Label ID="BiopsyLocationLabel" runat="server" Text='<%# Bind("BiopsyArea") %>'></asp:Label>
        <br />
        <br />
        Path Result:
        <br />
                    <asp:TextBox ID="PathResultLabel" runat="server" 
            Text='<%# Bind("PathResult") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="250" />

        <br />
        <br />
        Previous Visit Note:<br />
        <asp:TextBox ID="PreviousVisitNoteLabel" runat="server" 
            Text='<%# Bind("PreviousVisitNote") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="250" />
        <br />
        <br />
        Pathology Lab Note:<br />
        <asp:TextBox ID="txtPathNote" runat="server" 
            Text='<%# Bind("PathNote") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="150" />
        <br />
        <br />
        Note to DA/DT:<br />
        <asp:TextBox ID="txtDADTNote" runat="server" 
            Text='<%# Bind("DADTNote") %>' ReadOnly="True" TextMode="MultiLine" Width="600" Height="150" />
        <br />
        <br />
        Path Slip Note:<br />
        <asp:Label ID="PathSlipNoteLabel" runat="server" 
            Text='<%# Bind("PathSlipNote") %>' />
        <br />
        <br />
        Path Slip Checkboxes:
        <br />
        <asp:Label ID="PathSlipCheckboxesLabel" runat="server" 
            Text='<%# Bind("PathSlipCheckboxes") %>' />
        <br />
        <br />
        Patient Message:<br />
        <ASPNetSpell:SpellTextBox ID="txtPatientMessage" runat="server" TextMode="MultiLine" 
    DictionaryLanguage="English (International), English (Medical)" Height="88px" 
    Width="597px" Text='<%# Bind("PatientMessage") %>' onKeyPress="return macro(event);"></ASPNetSpell:SpellTextBox>
    <br />
    <asp:Label ID="pathcountLabel" runat="server" Text = '<%# Bind("PathCount") %>' Visible="false"></asp:Label>
    </ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:PathologyConnectionString %>" 

    SelectCommand="SELECT [LastName], [FirstName], [DOB], [PhoneNumber], [ChartNumber], [AccountNumber], [PathResult], [PreviousVisitNote], [PathSlipNote], [PathSlipCheckboxes], [PathNote], [DADTNote], [BiopsyArea], [PatientMessage], [PathCount] FROM [PatientDB] WHERE ([PatientID] = @PatientID)">
    <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" Name="PatientID" 
            PropertyName="SelectedValue" Type="Int32" />
    </SelectParameters>
</asp:SqlDataSource>

YSODからスタックトレースを追加しました

Server Error in '/' Application.
--------------------------------------------------------------------------------


Value cannot be null.
Parameter name: key 
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

 Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: key

Source Error: 


 An unhandled exception was generated during the execution of the current web request. Information regarding the Origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 



[ArgumentNullException: Value cannot be null.
Parameter name: key]
   System.Collections.Generic.Dictionary`2.FindEntry(TKey key) +10627293
   System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value) +12
   Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.GetLiteralTraceData(LiteralControl literal, TraceData& data) +97
   Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.GetTraceData(Object renderedObject) +421
   Microsoft.VisualStudio.Web.PageInspector.Runtime.WebForms.SelectionMappingRenderTraceListener.EndRendering(TextWriter writer, Object renderedObject) +79
   System.Web.UI.RenderTraceListenerList.EndRendering(TextWriter writer, Object renderedObject) +58
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +142
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   ASPNetSpell.SpellTextBox.Render(HtmlTextWriter writer) +6035
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.WebControls.TableCell.RenderContents(HtmlTextWriter writer) +57
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.WebControls.FormViewRow.Render(HtmlTextWriter writer) +38
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer) +211
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10
   System.Web.UI.WebControls.FormView.Render(HtmlTextWriter writer) +86
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +102
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +53
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +128
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +57
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1386




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18446  
12
user3064073

Formview1のsqldatasource2を更新したとき、formview1のスキーマとキーを更新できました。それを行ったときは機能したので、フォームビューを再構築して必要な方法を確認したところ、再び機能しなくなりました。 aspnetspell:spelltextboxコントロールからのものであると判断しました。最新バージョンをダウンロードしましたが、動作します。

0
user3064073

私はあなたが言ったすべてを試しました、そしてそれはうまくいきませんでした。ただし、何らかの理由でわからないが機能する回避策を見つけました。これをweb.configファイルに追加しました:

 <add key="PageInspector:ServerCodeMappingSupport" value="Disabled" />

そしてそれは私のために働いた:D

18
Thudor

これは、Visual Studioのbrowserlinkが有効になっていることが原因である可能性があります。それを無効にします:

http://www.asp.net/visual-studio/overview/2013/using-browser-link#disabling

13
Chris Halcrow

Visual Studioを閉じて、同じページにアクセスしてみてください。うまくいくはずです。私も同じ例外に直面しました。例外が表示された場合、それは問題の原因となっているVisual StudioのPageInspectorを指しています。なぜVSがアプリケーションの読み込みを混乱させているのかわかりません。

5
Goutham ܢܢ

私はこの問題を抱えていましたが、コードビハインドからLiteralControlを追加したときに発生しました。 Textプロパティはnullで、これはPageInspectorを混乱させるので、それをstring.Emptyに設定します。

このようなエラーを修正するためだけに機能をオフにすることはお勧めしません。別のマシンの別の開発者がコードを継承すると、まったく同じ問題が発生するからです。

0
JoeS

ソリューションをクリーンアップして再構築するだけでうまくいきました:)

0
Aftab Ahmed

私の提案は、データをテストすることです。 null値をコントロールにバインドしようとしているようです。データベースから返されたDataSetにnullがないことを確認してください。これが最初の呼び出しポートになるはずです。

0
betelgeuce