Wie passieren diese Fehler “der Wert darf nicht null sein. Parameter-name: Einheit"
private void button1_Click(object sender, EventArgs e)
{
DataClasses1DataContext dc = new DataClasses1DataContext();
var rec = dc.reportsSents.FirstOrDefault();
int rowCount = dc.reportsSents.Count();
if (rec != null)
{
for(int i = 0; i <= rowCount;)
{
var matchedCaseNumber = (from CaseNumberKey in dc.GetTable<reportsSent>()
select CaseNumberKey).FirstOrDefault();
(new MyReportRenderer()).RenderTest(Convert.ToString(matchedCaseNumber));
dc.reportsSents.DeleteOnSubmit(matchedCaseNumber);
dc.SubmitChanges();
i = (i +1);
}
}
Wenn der obige code ausgeführt wird, bekomme ich diesen Fehler:
Wert darf nicht null sein. Parameter name:
entity
und matchedCaseNumber markiert diese Zeile:
dc.reportsSents.DeleteOnSubmit(matchedCaseNumber);
Was hat dies zu bedeuten und warum bin immer ich es. Was ich versuche zu tun, ist pass MatchedCaseNumber, um die Methode und die löschen es dann, nach der die Methode ausgeführt wird und dann Schritt für Schritt durch die Tabelle. Jede Hilfe würde geschätzt werden.
Dank.
InformationsquelleAutor korrowan | 2011-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
matchedCaseNumber
ist wahrscheinlichnull
wenn übergebenDeleteOnSubmit
EDIT:
Wenn ich das richtig verstehe, was du versuchst zu tun, das wäre besser:
Ich denke also, check mein update.
was ist "Artikel" beziehen?
Ein reportsSent Element in der Tabelle
ausgezeichnet, arbeitet sehr viel effizienter, danke!
InformationsquelleAutor Magnus
Haben Sie
So was, wenn
matchedCaseNumber
null ist? DieOrDefault
macht das möglich.Ändern, dass die 2. Zeile in:
Auch,
sollte wohl werden:
Sind Sie Schleife rowCount+1 mal. Und es gibt wirklich keinen Punkt bei der Bewegung der Schrittweite von
i
aus der loop-Anweisung. Nicht zu verwechseln mit der/behindern opitimizers.wenn Sie erwarten 1+ Gegenstände zurück, nicht verwenden
.FirstOrDefault()
. Siehe auch Bearbeiten.InformationsquelleAutor Henk Holterman
Bedeutet es, dass
matchCaseNumber
istnull
.Beim erstellen matchCaseNumber Sie verwenden
.FirstOrDefault()
gibt der ersten Instanz oder der default-Wert für diesen Typ (dernull
für Referenz-Typen).In anderen Worten, Ihre Abfrage:
scheint es wieder keine Daten.
InformationsquelleAutor Colin Mackay