2016-06-08 9 views
0

Wie würde ich die Formatierung der folgenden Schritte vornehmen? Der Wert @IsCloneOf hängt davon ab, ob der Quelldatensatz bereits aus einem "ursprünglichen" Datensatz geklont wurde, der bestimmt werden kann, wenn das Feld txt_IsCloneOf null ist oder nicht.Zuweisen von SqlParameter mit if-Anweisung

cmd.Parameters.AddWithValue("@IsCloneOf", (If txt_IsCloneOf is null then txt_QuestionID.Text else txt_IsCloneOf.Text end if); 

Dies wird verwendet, um Werte an eine gespeicherte SQL-Prozedur zu senden.

+0

Ist das C# oder VB? Sieht nach einer Mischung aus beidem aus. – GendoIkari

+0

https://msdn.microsoft.com/en-us/library/zakwfxx4(v=vs.100).aspx – GendoIkari

+0

Das Projekt ist in C# ,, Ich würde die if-Anweisung oben als sein ist Pseudo-Code ... –

Antwort

1

Es gibt mehrere Möglichkeiten, dies zu tun, abhängig von bevorzugten Codierung Stile.

cmd.Parameters.AddWithValue("@IsCloneOf", (txt_IsCloneOf == null) ? txt_QuestionID.Text : txt_IsCloneOf.Text); 

Oder

if (txt_IsCloneOf == null) 
    cmd.Parameters.AddWithValue("@IsCloneOf", txt_QuestionID.Text); 
else 
    cmd.Parameters.AddWithValue("@IsCloneOf", txt_IsCloneOf.Text); 

Oder

string isCloneOf = ""; 

if (txt_IsCloneOf == null) 
    isCloneOf = txt_QuestionID.Text; 
else 
    isCloneOf = txt_IsCloneOf.Text; 

cmd.Parameters.AddWithValue("@IsCloneOf", isCloneOf); 
+0

Habe alle diese Methoden versucht, und sobald ich ein "Wenn "Dann ist der gespeicherte Wert 0 (Null), obwohl dieser Wert nirgendwo zu finden und zu verwenden ist. –

+0

@BrentOliver Ich würde vermuten, dass Sie ein nicht verwandtes Problem haben. Haben Sie versucht, einen Breakpoint in den Code einzufügen und zu sehen, ob der Wert von cmd.Parameters Ihren Erwartungen entspricht? – GendoIkari

+0

Ich denke, was passiert ist, dass der Wert von txt_IsCloneOf eine leere Zeichenfolge '' ist, anstatt eine Null. Wenn ich einen Datensatz mit Wert erstelle, funktioniert die Anweisung. das Ändern des == zu bewerten, funktioniert jedoch nicht. Muss in diesem Fall herausfinden, wie man "leere Zeichenfolge" sagt. –

0

Angenommen, dies ist C# mit dem Tag.

cmd.Parameters.AddWithValue("@IsCloneOf", txt_IsCloneOf == null?txt_QuestionID.Text:txt_IsCloneOf.Text; 
0
txt_IsCloneOf == null ? txt_QuestionID.Text : txt_IsCloneOf.Text 
+0

Könnten Sie Ihrem Code bitte einen Kontext hinzufügen? – ppperry

+0

Haben diese Methoden versucht, und sobald ich implementieren, dann ist der gespeicherte Wert 0 (Null), obwohl dieser Wert nirgendwo zu finden und zu verwenden ist –