C#如何调用MySQL的执行存储过程

uncarman 2006-01-16 05:50:55
写了一个存储过程,里面封装2个Update Sql语句,有输入参数,在C#中调用,老是提示"#42000 FUNCTION 存储过程.....不存在"。调用代码如下(使用MySql.Data.dll做了封装),请指点。存储过程在MySQL中调用正常。
public bool ExecGroupExchange(string housingNumber,string alteredDeviceGroup,DateTime changeOutDate,
string newDeviceGroup,DateTime changeInDate,int validYear){
MySqlParameter param1 = new MySqlParameter("HousingNumber",MySqlDbType.VarChar,9);
param1.Value = housingNumber;
MySqlParameter param2 = new MySqlParameter("AlteredDeviceGroup",MySqlDbType.VarChar,3);
param2.Value = alteredDeviceGroup;
MySqlParameter param3 = new MySqlParameter("AltChangeOutDate",MySqlDbType.Date);
param3.Value = changeOutDate;
MySqlParameter param4 = new MySqlParameter("NewDeviceGroup",MySqlDbType.VarChar,3);
param4.Value = newDeviceGroup;
MySqlParameter param5 = new MySqlParameter("NewChangeInDate",MySqlDbType.Date);
param5.Value = changeInDate;
MySqlParameter param6 = new MySqlParameter("NewValidYear",MySqlDbType.Int32,11);
param6.Value = validYear;

int iRes = db.ExecSP("spm_HousingManage_RegularInfo_Instruments_GroupExchange",param1,
param2,param3,param4,param5,param6);
if(iRes != 0)
lastError = "Execute group exchange fail.";
return iRes == 0;
}

public int ExecSP(string spName,params Object[] sqlParams){
int iCount = 0;

try {
if(! this.isBindTrans)
this.transConn.Open();
MySqlCommand sqlCmd ;
if (trans != null)
sqlCmd = new MySqlCommand(spName,this.transConn,trans);
else
sqlCmd = new MySqlCommand(spName,this.transConn);
sqlCmd.CommandType = CommandType.StoredProcedure;

if( sqlParams != null && sqlParams.Length > 0 ){
for(int i = 0; i < sqlParams.Length; i++)
sqlCmd.Parameters.Add(sqlParams[i]);
}

iCount = sqlCmd.ExecuteNonQuery();
sqlCmd.Dispose();
}
catch( MySqlException e ) {
ErrorLog.SysWrite(e.Source,e.Message,"存储过程:" + spName);
return -1;
}
finally{
if(! this.isBindTrans)
this.transConn.Close();
}

return iCount;
}
...全文
632 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mybeautiful 2006-01-19
  • 打赏
  • 举报
回复
String sql="";
sql="call sp_***('para')";
conn.excute(sql);

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧