Как передать нулевой параметр MySQL на DbCommand в Enterprise Library
-
08-07-2019 - |
Вопрос
Я пытаюсь передать нулевое значение для первого параметра в приведенном ниже коде, но MySQL жалуется, что
Incorrect number of arguments for PROCEDURE myProc; expected 2, got 1
Когда я вручную вызываю процедуру с первым аргументом, равным NULL, это работает, но когда EmptyAsNullStartsWith (employeeNumberText.Text)
возвращает значение NULL, он жалуется. Р>
Database db = DatabaseFactory.CreateDatabase(
ConfigurationManager.AppSettings["dbType"]
);
DbCommand cmd = db.GetStoredProcCommand("staff_listforinquiry");
db.AddeParameter(
cmd,
"in_employeeNumber",
DbType.String,
EmptyAsNullStartsWith(employeeNumberText.Text)
);
db.AddeParameter(
cmd,
"in_name",
DbType.String,
EmptyAsNullContains(employeeNameText.Text)
);
Решение
Вы пытались, чтобы EmptyAsNullContains (employeeNameText.Text) возвращал DBNull вместо обычного нуля?
Другие советы
if(employeeNumberText.Text != "")
db.AddInParameter(dbCommand, "in_employeeNumber", DbType.String, employeeNumberText.Text);
else
db.AddInParameter(dbCommand, "in_employeeNumber", DbType.String, DBNull.Value);
Не связан с StackOverflow