cmd.CommandText = "up_shizeLastBm";
==>
cmd.CommandText = "up_shizeLastBm @em, @ddate, @io";

解决方案 »

  1.   

    按照 athossmth(athos),报如下的错误
    ERROR [HY000] [INTERSOLV][ODBC SQL Server driver][SQL Server]Must declare variable '@em'.
      

  2.   

    UP + 学习 + 接分UP + 学习 + 接分UP + 学习 + 接分
      

  3.   

    用这种格式调用试试
    OdbcCommand cmd = new OdbcCommand("{ ? = CALL up_shizeLastBm(?, ?, ?) }", dbconnection);
      

  4.   

    问题解决了DateTime dt = new DateTime(2005,1,10);
    OdbcCommand cmd = new OdbcCommand();
    cmd.Connection = dbconnection;
    cmd.CommandText = "exec up_shizeLastBm ?,?,?,?";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@em",OdbcType.Int);
    cmd.Parameters[0].Value = 40;
    cmd.Parameters.Add("@ddate",OdbcType.DateTime);
    cmd.Parameters[1].Value = dt;
    cmd.Parameters.Add("@io",OdbcType.Int);
    cmd.Parameters[2].Value = 1;
    cmd.Parameters.Add("@lastbm",OdbcType.Double);
    cmd.Parameters[3].Direction = ParameterDirection.Output;
    cmd.ExecuteNonQuery();
    double num = Convert.ToDouble(cmd.Parameters[3].Value);
    MessageBox.Show(num.ToString());多谢各位.