请教高手!!!存储过程和ASP.net后台代码问题
我建了一个存储过程!如下:set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[InsuranceInfo_Insert]
@cID int,
@icID int,
@icodeID int,
@itID int,
@cNo varchar(100),
@iNo varchar(100),
@icodeName varchar(200),
@icName varchar(200),
@itType varchar(200),
@iStartTime datetime,
@iEndTime datetime,
@iInsured varchar(100),
@iInsuredID varchar(100),
@iRegDate datetime,
@iMoney money,
@iReMark varchar(200)
as
begin
insert into InsuranceInfo(iNo,iStartTime,iEndTime,itID,icID,iInsured,iInsuredID,cID,iRegDate,iMoney,icodeID,iReMark) values
(@iNo,@iStartTime,@iEndTime,@itID,@icID,@iInsured,@iInsuredID,@cID,@iRegDate,@iMoney,@icodeID,@iReMark);select @@identity
END
后台代码:
protected void BtnOK_Click(object sender, EventArgs e)
{
string Cno, Ino, Name, ICD, Company, IcodeName, Istype, DataTime, StartTime, EndTime,Remark,Money;
Cno = TextCno.Text.ToString();
Ino = TextIno.Text.ToString();
Name = TextName.Text.ToString();
ICD = TextId.Text.ToString();
Company = DDL1.SelectedValue;
IcodeName = DDL2.SelectedValue;
Istype = DDL3.SelectedValue;
DataTime = DateTime.Parse(TextData.Text).ToString();
StartTime = DateTime.Parse(TextiStartTime.Text).ToString();
EndTime = DateTime.Parse(TextiEndTime.Text).ToString();
//Money = TextMoney.Text.ToString();
Money = Convert.ToDecimal(TextMoney.Text.ToString()).ToString();
Remark = TxtiReMark.Text.ToString();
SqlCommand mycom = new SqlCommand("InsuranceInfo_Insert", con);
mycom.CommandType = CommandType.StoredProcedure;
//传入参数
mycom.Parameters.Add("@cNo", SqlDbType.VarChar).Value = Cno;
mycom.Parameters.Add("@iNo", SqlDbType.VarChar).Value = Ino;
mycom.Parameters.Add("@iInsured", SqlDbType.VarChar).Value = Name;
mycom.Parameters.Add("@iInsuredID", SqlDbType.VarChar).Value = ICD;
mycom.Parameters.Add("@icName", SqlDbType.VarChar).Value = Company;
mycom.Parameters.Add("@icodeName", SqlDbType.VarChar).Value = IcodeName;
mycom.Parameters.Add("@itType", SqlDbType.VarChar).Value = Istype;
mycom.Parameters.Add("@iRegDate", SqlDbType.DateTime).Value = DataTime;
mycom.Parameters.Add("@iStartTime", SqlDbType.DateTime).Value = StartTime;
mycom.Parameters.Add("@iEndTime", SqlDbType.DateTime).Value = EndTime;
mycom.Parameters.Add("@iMoney", SqlDbType.Money).Value = Money;
if (TxtiReMark.Text == "")
{
mycom.Parameters.Add("@iReMark", SqlDbType.VarChar).Value = 0;
}
else
{
Remark = TxtiReMark.Text;
mycom.Parameters.Add("@iReMark", SqlDbType.VarChar).Value = Remark;
}
con.Open();
mycom.ExecuteNonQuery();
con.Close();
Response.Write("<script>alert('客户信息保存成功');location='CreatClientInfo.aspx'</script>");
}
运行出错!过程或函数 'InsuranceInfo_Insert' 需要参数 '@cID',但未提供该参数。
请教一下该怎么解决? --------------------编程问答-------------------- 少传了一个@cID参数
mycom.Parameters.Add("@cID", 。。。。 --------------------编程问答-------------------- 你的cID如果是自增,就把这个参数去掉
ALTER proc [dbo].[InsuranceInfo_Insert]
@cID int,,
@icodeID int,
@itID int,
@cNo varchar(100),
@iNo varchar(100),
@icodeName varchar(200),
@icName varchar(200),
@itType varchar(200),
@iStartTime datetime,
@iEndTime datetime,
@iInsured varchar(100),
@iInsuredID varchar(100),
@iRegDate datetime,
@iMoney money,
@iReMark varchar(200)
as
begin
--------------------编程问答-------------------- 太粗心啦。。。。。一菜更比一菜菜啊 --------------------编程问答-------------------- 不能去掉,去掉就报错 没有定义这个参数变量!后台代码中不会传这个cID,只会传cNo,这是多个表在一起建的存储过程! --------------------编程问答--------------------
ALTER proc [dbo].[InsuranceInfo_Insert]
@cID int,
@icID int,
@icodeID int,
@itID int,
@cNo varchar(100),
@iNo varchar(100),
@icodeName varchar(200),
@icName varchar(200),
@itType varchar(200),
@iStartTime datetime,
@iEndTime datetime,
@iInsured varchar(100),
@iInsuredID varchar(100),
@iRegDate datetime,
@iMoney money,
@iReMark varchar(200)
as
begin
insert into InsuranceInfo(iNo,iStartTime,iEndTime,itID,icID,iInsured,iInsuredID,cID,iRegDate,iMoney,icodeID,iReMark) values
(@iNo,@iStartTime,@iEndTime,@itID,@icID,@iInsured,@iInsuredID,@cID,@iRegDate,@iMoney,@icodeID,@iReMark);select @@identity
废话让你去掉参数,存储过程里面当然也要去掉,这也要人教你???
还有 你的存储过程不算@cID有15个参数
你C#代码里一共传进来12个参数
能不报错就TM见鬼了!
补充:.NET技术 , C#