2 Stimmen

Standardmäßig entspricht DBNull.Value

Ich versuche, Standardwert an SQL Server in c# zu übergeben.

Dieser Code übergibt null. Gibt es einen Weg, um den Standardwert zu übergeben?

foreach (SqlParameter Parameter in command.Parameters)
{
    if (Convert.ToString(Parameter.Value) == "")
    {
        Parameter.Value = DBNull.Value;
    }
}

5voto

Marc Gravell Punkte 970173

Entweder den Parameter nicht hinzufügen oder den Parameter hinzufügen, aber den Wert auf null setzen (nicht DBNull.Value). Beides hat den gleichen Effekt: Der Parameter wird nicht übergeben, daher wird der Standardwert verwendet.

2voto

Chains Punkte 12031

Sie können den Parameter standardmäßig in SQL-Server festlegen (Gespeicherte Prozedur...)

(@parm varchar(5) = null)
AS
Begin...

Und überhaupt keinen Parameter von C# übergeben.

1voto

Chains Punkte 12031

Hier ist eine weitere Lösungsmöglichkeit - es scheint nach den Standardwerten für Parameter in der gespeicherten Prozedur zu suchen (wörtlich eine Mustersuche nach der Zuweisung in der Deklaration der Variable) und gibt alle Standardwerte zurück, die gefunden wurden. Also... du könntest diese Prozedur aus deiner C#-App aufrufen, um alle deine Standardwerte zu erhalten, sie lokalen C#-Variablen zuweisen und sie dann verwenden, wenn du deine andere Prozedur aufrufst.

http://www.codeproject.com/Articles/12939/Figure-Out-the-Default-Values-of-Stored-Procedure

Und hier ist, wie du den Standardwert direkt auf einer Tabelle finden kannst: (du musst möglicherweise die Klammern vom zurückgegebenen Wert entfernen)

SELECT COLUMN_DEFAULT, replace(replace(COLUMN_DEFAULT,'(',''),')','') as DefaultWithNoParenthesis
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'WAS_AUCH_IMMER'

Viel Erfolg!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X