Как передать нулевой параметр MySQL на DbCommand в Enterprise Library - PullRequest
0 голосов
/ 13 ноября 2008

Я пытаюсь передать нулевое значение для первого параметра в коде ниже, но MySQL жалуется, что

Incorrect number of arguments for PROCEDURE myProc; expected 2, got 1

Когда я вручную вызываю процедуру с первым аргументом как ноль, она работает, но когда EmptyAsNullStartsWith(employeeNumberText.Text) возвращает ноль, он жалуется

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)
);

Ответы [ 2 ]

2 голосов
/ 13 ноября 2008

Вы пытались заставить EmptyAsNullContains (employeeNameText.Text) возвращать DBNull вместо обычного нуля?

0 голосов
/ 02 февраля 2012
if(employeeNumberText.Text != "")
      db.AddInParameter(dbCommand, "in_employeeNumber", DbType.String, employeeNumberText.Text);
else
      db.AddInParameter(dbCommand, "in_employeeNumber", DbType.String, DBNull.Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...