webForumDet fria alternativet

felmedelande vid fråga

.NET

7 svar · 504 visningar · startad av annasmurf

Medlem sedan mars 2006237 inlägg
Frågan#1

får följande felmedelande:
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
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.
har i tabeladapter en fillbyAvbestallning/getdatabyavbestallning(@bookingNumber) som kör frågan

SELECT     Avbestallningskydd
FROM         TblOrder
WHERE     (Bokningsnummer = @bookingNumber)

i klassen har jag:

public OrderSchema GetDataByAvbestallning(int bookingNumber)
        {
            OrderSchema ds2Return = new OrderSchema();
            OrderTableAdapter tta = new OrderTableAdapter();
            tta.FillByAvbestallning(ds2Return.Order, bookingNumber);
            return ds2Return;

        }

i filen.aspx.cs har jag:

private Order order = new Order();
  ddlAvbestallningssydd.DataSource = order.GetDataByAvbestallning(bookingNumber);
            ddlAvbestallningssydd.DataTextField = "Avbestallningskydd";
            ddlAvbestallningssydd.DataValueField = "Avbestallningskydd";
            ddlAvbestallningssydd.DataBind();

och i filen.aspx har jag

<asp:Panel ID="plAddPersonsToForsakring" runat="server" BorderStyle="double">
<table>
      <tr>
        <td>
            <asp:Label ID="Label1" runat="server" Text="Bokningsnummer:"></asp:Label><br />
            <asp:TextBox ID="tbxBookingNumber" runat="server" >1023772</asp:TextBox>
         </td>
               <td>
         <asp:Label ID="Label2" runat="server" Text="Avbestallningssydd:"></asp:Label><br />
          <asp:TemplateField HeaderText="Avbest" SortExpression="Avbest">
                <EditItemTemplate>
                       <asp:DropDownList ID="ddlAvbestallningssydd" runat="server"  Width="120px" 
                            >
                      </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblAvbestallningssydd" runat="server" Text='<%# Bind("Avbestallningsskydd") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
       </td>
    </tr>    
    </table>
    <br />   
   </asp:Panel>   

 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetDataByAvbestallning"
        TypeName="n.Web.Classes.Order" OldValuesParameterFormatString="original_{0}">
         <SelectParameters>
             <asp:SessionParameter Name="bookingNumber" Type="Int32" SessionField="BOOKING_NUMBER" DefaultValue="1" />
         </SelectParameters>
     </asp:ObjectDataSource>

är det någon som vet vad felet är någonstan?

Medlem sedan nov. 20011 551 inlägg
#2

får du träffar med NULL när du kör frågan? kör en ISNULL i sql scriptet isf

Medlem sedan mars 2006237 inlägg
#3

vad menar du med isnull, kan du ge ett exempel?

Medlem sedan mars 2006237 inlägg
#4

skrv så här
SELECT ISNULL(Avbestallningskydd, Avbestallningskydd) as Avbestallningskydd
FROM bokning
WHERE (ID = @ID)
men fick ändå samma fel

Medlem sedan nov. 20011 551 inlägg
#5

Vad är avbeställningsskydd för datatyp? är det en int? isf:
SELECT ISNULL(Avbestallningskydd, 0) as Avbestallningskydd
FROM bokning
WHERE (ID = @ID)
annars
SELECT ISNULL(Avbestallningskydd,'0') as Avbestallningskydd
FROM bokning
WHERE (ID = @ID)

fast jag vet ju inte om det är det som är problemet men felmeddelandet kan tyda på att du får nullvärden där du inte tillåter det i t ex datasetet

Medlem sedan mars 2006237 inlägg
#6

tyvärr så hjälper det inte för jag har skrivit så som du sa.....men vilket dataset menar du inte tillåter null, menar du att id eller avbestallning inte får vara null, jag vet att inte id kan vara null,men det andra kan gärna var null

så inga mer bra idéer

Medlem sedan juni 20008 205 inlägg
#7

Har du försökt dig på det som felmeddelandet säger...? Please review the stack trace for more information about the error and where it originated in the code.

Medlem sedan nov. 20014 054 inlägg
#8

Som spango uttrycker, kolla igenom stacktrace, där kan du se på vilken rad som kastade felet.. sedan kan man stega bakåt.

Du kan också prova att debugga, sätt en "break point" (röd plutt) på ex

tta.FillByAvbestallning(ds2Return.Order, bookingNumber);

och stega igenom metoden...

http://www.cs.uvm.edu/~upe/resources/debugging/visualStudioCDebug/ ger lite kort info om att debugga.. skall kunna appliceras på ASP.NET utveckling också :)

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)