CREATE proc TotalMoney @SupplierName varchar(15), @ShouldPay money output, @SolidPay money output, @NoPay money output, @rc int output as select @ShouldPay=SUM(应收金额), @SolidPay=SUM(已收金额),@NoPay=(SUM(应收金额)-SUM(已收金额)) from 入库信息 where 供应商名称 like @SupplierName set @rc = @@ROWCOUNT RETURN 上面是存储过程。然后是调用该存储过程的类 下面是调用存储过程的方法 public class SP_TotalMoney { #region 变量 public string supplierName = ""; public float shouldPay = ""; public float solidPay = ""; public float noPay = ""; public int rc; #endregion #region 方法 public SP_TotalMoney() { } public int ExecProc() { int rc = 1; SqlConnection conn = new SqlConnection(GlobalClass.GlobalClass.ConnectionString); SqlCommand sc = new SqlCommand("TotalMoney", conn); sc.CommandType = CommandType.StoredProcedure; sc.Parameters.Add("@SupplierName", SqlDbType.VarChar, 15); sc.Parameters["@SupplierName"].Value = supplierName; sc.Parameters.Add("@ShouldPay", SqlDbType.Money); sc.Parameters["@ShouldPay"].Direction = ParameterDirection.Output; sc.Parameters.Add("@SolidPay", SqlDbType.Money); sc.Parameters["@SolidPay"].Direction = ParameterDirection.Output; sc.Parameters.Add("@NoPay", SqlDbType.Money); sc.Parameters["@NoPay"].Direction = ParameterDirection.Output; sc.Parameters.Add("@rc", SqlDbType.Int); sc.Parameters["@rc"].Direction = ParameterDirection.Output; try { if (conn.State == ConnectionState.Closed) { conn.Open(); } sc.ExecuteNonQuery(); shouldPay = Convert.ToSingle(sc.Parameters["@ShouldPay"].Value); solidPay = Convert.ToSingle(sc.Parameters["@SolidPay"].Value); noPay = Convert.ToSingle(sc.Parameters["@NoPay"].Value); rc = Convert.ToInt32(sc.Parameters["@rc"].Value); if (rc > 0) { userID = Convert.ToInt32(sc.Parameters["@UserID"].Value); realName = sc.Parameters["@RealName"].Value.ToString(); } } catch (Exception ex) { rc = -99; info = ex.Message; } finally { conn.Close(); } return rc; } 前台调用代码: public string supplierName = "xx厂"; public float shouldPay = ""; public float solidPay = ""; public float noPay = ""; public int row_count; SP_TotalMoney tm = new SP_TotalMoney(); tm.supplierName = supplierName; tm.ExecProc(); shouldPay = tm.shouldPay; solidPay = tm.solidPay; noPay = tm.noPay; row_count = tm.rc; 写到这样再看不明白我也没办法了
参考地址:http://zhidao.baidu.com/question/38476271.html