Ich versuche, für den Aufruf von Stored ProceduresC# Stored Procedures
eine generische Methode zu erstellenich in
i Mühe, die Parameter angeben, um das habe im Moment über ein Array in den Parameter zu übergeben möchten SqlCommand
Dies ist, was ich bisher haben
Kann jemand raten
dank
Simon
Aufruf der Methode
string[] paramNames = new string[1];
paramNames[0] = "@date = 2012-1-1";
string err="";
WriteToDatabase("exec LoadData", CommandType.StoredProcedure, paramNames, out err);
Methode
public static bool WriteToDatabase(
string sql,
CommandType commandType,
string[] paramNames,
out string errorText)
{
bool success = false;
errorText = "";
try
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
connection.Open();
List<SqlParameter> parameters = new List<SqlParameter>();
foreach (string paramName in paramNames)
{
parameters.Add(new SqlParameter() { ParameterName = paramName });
}
using (SqlCommand command = new SqlCommand()
{
Connection = connection,
CommandText = sql,
CommandType = commandType,
Parameters = parameters
})
command.ExecuteNonQuery();
connection.Close();
}
}
catch (SqlException sex)
{
log.Error("QueryDatabase SQLexception:" + sex.Message);
}
catch (Exception ex)
{
log.Error("QueryDatabase exception:" + ex.Message);
}
return success;
}
Sie möchten den Parameterwert als String übergeben ?? –
Warum übergeben Sie nicht einfach ein Array (oder eine Liste) von SQLParameter? –
Inwiefern scheitert es? Warum verwenden Sie eine Zeichenfolge für die Parameter? Und warum setzen Sie den Namen und den Wert in der Zeichenfolge _same_, die geparst werden soll, zurück? Verwenden Sie so etwas wie ein 'Dictionary' für ein stark typisiertes Schlüssel/Wert-Paar. Schließlich werden durch die Ausnahmebehandlung nützliche Informationen wie Stack-Traces und innere Ausnahmen entfernt. Es ist möglich, dass etwas nicht funktioniert und das System präsentiert Ihnen einen sehr guten Grund, warum es nicht funktioniert, und Sie ignorieren es einfach. –
David