2014-04-04 10 views
10

Ich bekomme einen "gelben Bildschirm des Todes" beim Debuggen einer Website, an der ich arbeite. Die Fehlermeldung lautet "Wert kann nicht null sein. Parametername: Schlüssel." Ich versuche, eine Formview an den ausgewählten Index einer Gridview zu binden. Alles scheint korrekt zu binden, wenn ich Haltepunkte in meiner Methode "selectedindexxchanged" festlege. Ich kann Werte meiner Formview anzeigen, aber wenn ich sie weiter ausführe, erhalte ich die obige Fehlermeldung. Ich habe versucht, eine datakeynames-Eigenschaft zu dem Formview hinzuzufügen und dieselbe Fehlermeldung zu erhalten. Ich habe hier gesucht und gegoogelt und einige Ergebnisse gesehen, aber keine, die mein Problem zu beheben scheinen."Wert kann nicht null sein Parametername: Schlüssel"

Einige Code ist unten:

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> 

Ich habe den Stack-Trace aus dem Mein Vorschlag ist, Ihre Daten

YSOD hinzugefügt
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 
+0

Ich sehe nichts offensichtliches aus dem Code, den Sie gepostet haben. Kannst du einen Screenshot des YSOD hinzufügen? Gibt es einen Stack-Trace oder irgendetwas, das Menschen helfen könnte, dies mit Ihnen zu debuggen? Haben Sie einen Server-Side-Code für die Formview-Events? – philreed

+0

Ich habe die Stack-Trace-Informationen hinzugefügt, und ich habe keinen serverseitigen Code, der sich auf die formview bezieht, abgesehen von dem, was ich oben erwähnt habe, um Informationen aus der formview zu erhalten. – user3064073

+0

Das ist eine Menge Code zu lesen. Können Sie Ihr Problem eingrenzen? –

Antwort

0

Ich Refresh sqldatasource2 für formview1, als ich es getan hat mir erlaubt, das Schema und die Schlüssel für formview1 zu aktualisieren. Als ich das tat, funktionierte es, also baute ich die Formularansicht so um, dass sie so aussah, wie ich sie brauchte, und dann hörte sie wieder auf zu arbeiten. Ich stellte fest, dass es aus dem aspnetspell stammte: Zaubertextboxsteuerung. Ich habe die neueste Version heruntergeladen und es funktioniert jetzt.

+0

Dies sollte nicht die akzeptierte Antwort sein. Das Problem liegt darin, dass Visual Studio etwas falsch macht und nichts mit SqlDataSource oder anderen Web Forms-Steuerelementen zu tun hat. – Richard

0

zu testen. Es scheint, dass Sie versuchen, einen Nullwert an das Steuerelement zu binden. Stellen Sie sicher, dass keine Nullen in Ihrem DataSet aus der Datenbank zurückkommen. Es sollte Ihre erste Anlaufstelle sein.

+0

Ich habe alle Daten überprüft und es gibt keine Nullwerte. – user3064073

17

Ich habe alles versucht, was Sie gesagt haben und es hat nicht funktioniert. Allerdings habe ich eine Problemumgehung gefunden, die aus irgendeinem Grund nicht funktioniert. Ich habe diese auf meine Datei web.config:

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

Und es funktionierte für mich: D

+1

Nach einem halben Tag verschwenden, um dieses Problem zu lösen und endlich von hier bekommen .. Great, Thanks man .. !!! –

5

Versuchen Sie, die Visual Studio schließen und und die gleiche Seite zugreifen. Es sollte funktionieren. Ich sah auch die gleiche Ausnahme. Wenn Sie die Ausnahme sehen, zeigt es auf PageInspector von Visual Studio, das das Problem verursacht. Nicht sicher, warum VS das Laden von Anwendungen durcheinander bringt.

+0

wow ... Jetzt Zeit herauszufinden, warum das geschah lol –

0

Ich habe gerade dieses Problem hatte und für mich ist es passiert, wenn ein LiteralControl von Code hinter hinzufügen. Die Text-Eigenschaft war null, und dies führt dazu, dass PageInspector auf "string.Empty" gesetzt wird.

Ich rate davon ab, Funktionen zu deaktivieren, nur um Fehler wie diese zu beheben, denn wenn ein anderer Entwickler auf einer anderen Maschine Ihren Code erbt, haben sie genau das gleiche Problem.