很着急,请大家帮忙:在asp.net里想把datagrid的一些数据放进数据库的表ZR里,条件是nam和tim两个字段的值等于某个值,该值已经赋进x,y两个全局变量 
1。我先按button1,把姓名和时间保存在表ZR的两个字段里(我已经完成)
2。然后开始输入ZR的其他字段对应的数据
3。然后按button2,想把(2)中输入的数据保存在(1)中对应的姓名nam和时间tim那一行
   以后如果换了姓名或时间,就到另一行了,即(nam+tim)是关键字CREATE PROCEDURE inser(
@cName varchar(30),
@name varchar(30),
@time varchar(30),
@Pt int
)ASdeclare @sql varchar(1000)
set @sql = 'update ZR set '+cast(@cName as varchar)+'='+cast(@Pt as varchar)+' where nam='''+cast(@name as varchar)+''' and tim='''+cast(@time as varchar)+''''
exec(@sql)
GO
asp。net程序是:
private void Button2_Click(object sender, System.EventArgs e)
{   
TextBox txt=new TextBox();
int i;
string ss=null;
int sss=0;
int ssss=0;string strconn= ConfigurationSettings.AppSettings["dsn"];
SqlConnection ccn= new SqlConnection (strconn);
ccn.Open ();
SqlCommand ccm=new SqlCommand  ("inser",ccn);
ccm.CommandType =CommandType.StoredProcedure ;for(i=0;i<dgd_abc.Items.Count;i++)
{
ss=((TextBox)dgd_abc.Items[i].FindControl("textbox1")).Text.ToString();
ssss=int.Parse(ss);
ccm.Parameters .Add ("@CName",SqlDbType.VarChar,30);
ccm.Parameters .Add ("@name",SqlDbType.VarChar,30);
ccm.Parameters .Add ("@time",SqlDbType.VarChar,30);
ccm.Parameters .Add ("@Pt",SqlDbType.Int,4);
ccm.Parameters ["@CName"].Value =this.dgd_abc.Items[i].Cells[1].Text.ToString();
ccm.Parameters ["@name"].Value =x.ToString(); //x,y是2个static string变量
ccm.Parameters ["@time"].Value =y.ToString();
ccm.Parameters ["@Pt"].Value =ssss;
ccm.ExecuteNonQuery ();
sss=sss+int.Parse(ss);
 } ccn.Close();
Lb_sum.Text="总成绩是:"+sss.ToString();
}报错:为inser指定的参数太多
我觉得可能存储过程sql有问题
请大家帮帮我