-4

当我单击页面中的保存按钮时,它会执行此操作

protected void btnsave_Click(object sender, EventArgs e)

然后它调用save()函数。在save()函数中它调用存储过程insertcusrec5。一旦它到达存储过程 insertcusrec5,它就会引发错误

“过程或函数 'insertcustrec5' 需要参数 '@tb1',但未提供”

但是我提供了..ni 检查了每个参数的值,但这个错误仍在继续发生。

--> 我的存储过程是:

ALTER procedure [dbo].[insertcustrec5]
 (
   @RID int,
   @Remarks varchar(MAX),
   @CRDate date,
   @ChallanNo float,
   @Quantity float,
   @tb1 int,
   @Amount float
 )
 As
 INSERT INTO Customer_Receive(ChallanNo, CRDate, RID, Quantity, Remarks,CustID,Amount)
 VALUES     (@ChallanNo,@CRDate,@RID,@Quantity,@Remarks,@tb1,@Amount)

--> 调用存储过程的保存函数是:

public void save()
    {

        data.AddParameter("RID", this.rid);
        data.AddParameter("CustID", this.tb1);
        data.AddParameter("Remarks", this.remarks);
        data.AddParameter("CRDate", this.CRDate);
        data.AddParameter("ChallanNo", this.ChallanNo);
        data.AddParameter("Quantity", this.quantity);
        data.ExecuteNonQuery("insertcustrec5");

--> ExecuteNonQuerry 函数:-

public int ExecuteNonQuery(string commandText)
    {
        try
        {
            SqlCommand command = new SqlCommand(commandText);
            command.CommandType = System.Data.CommandType.StoredProcedure;
            this.OpenConnection();
            command.Connection = this.connection;
            command.Parameters.AddRange(cmdParams.ToArray());
            return command.ExecuteNonQuery();
        }
        finally
        {
            this.CloseConnection();
        }
    }

--> 保存按钮点击:-

 protected void btnsave_Click(object sender, EventArgs e)
    {
        bllCustomer_Receive receive = new bllCustomer_Receive();
        string datetime = txtcrdate.Text;
        DateTime dt = DateTime.ParseExact(datetime, "d/M/yyyy", null);
        receive.CRDate = dt;
        receive.ChallanNo = txtchallan.Text;
        receive.rid = txtrid.Text;
        receive.quantity = float.Parse(txtquantity.Text);
        receive.remarks = txtremarks.Text;
        tb1.Text = Convert.ToString(drpdwncustID.SelectedItem);
        receive.tb1 = tb1.Text;
        receive.save();
    }
4

2 回答 2

5

好吧,您没有@tb1在代码的以下部分提供参数(正如错误所说):

    data.AddParameter("RID", this.rid);
    data.AddParameter("CustID", this.tb1);
    data.AddParameter("Remarks", this.remarks);
    data.AddParameter("CRDate", this.CRDate);
    data.AddParameter("ChallanNo", this.ChallanNo);
    data.AddParameter("Quantity", this.quantity);
    data.ExecuteNonQuery("insertcustrec5");

当您使用它时,您也应该添加一行来添加@amount参数......

于 2012-05-21T13:27:00.317 回答
1

边写边给sp加参数

data.AddParameter("tb1", this.tb1);

代替

 data.AddParameter("CustID", this.tb1);
于 2012-05-21T13:32:36.137 回答