0

我试图在下面的代码中为第一个参数传递一个空值,但 MySQL 抱怨说

PROCEDURE myProc 的参数数量不正确;预期 2,得到 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)
);
4

2 回答 2

2

您是否尝试过让 EmptyAsNullContains(employeeNameText.Text) 返回 DBNull 而不是常规的 null?

于 2008-11-13T18:20:59.463 回答
0
if(employeeNumberText.Text != "")
      db.AddInParameter(dbCommand, "in_employeeNumber", DbType.String, employeeNumberText.Text);
else
      db.AddInParameter(dbCommand, "in_employeeNumber", DbType.String, DBNull.Value);
于 2012-02-02T12:35:30.770 回答