问题描述
-----创建的一个公共类usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Data.SqlClient;usingSystem.Data;namespaceStudentInfo.方法及类{publicclassCommon{SqlConnectioncon=newSqlConnection();SqlCommandcom=newSqlCommand();privatevoidopcon(){con.ConnectionString="server=(local);database=StudentInfo;integratedsecurity=true";con.Open();}publicvoidopencommand(stringcommtext,CommandTypecommtype,SqlParameter[]para){opcon();com.Connection=con;com.CommandText=commtext;com.CommandType=commtype;if(para!=null){for(inti=0;i<para.Length;i++){com.Parameters.Add(para[i]);}}}publicDataSetfillData(stringcommtext,CommandTypecommtype,SqlParameter[]para){opencommand(commtext,commtype,para);SqlDataAdapterda=newSqlDataAdapter(com);DataSetds=newDataSet();da.Fill(ds);closecon();returnds;}publicintexecuteNuery(stringcommtext,CommandTypecommtype,SqlParameter[]para){opencommand(commtext,commtype,para);inti=com.ExecuteNonQuery();closecon();returni;}privatevoidclosecon(){con.Close();}}}---创建的一个添加和查询方法usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Data.SqlClient;usingSystem.Data;usingSystem.Collections;namespaceStudentInfo.方法及类{publicclassFunc{CommonCN=newCommon();publicDataSetLook(){DataSetds=CN.fillData("Look",CommandType.StoredProcedure,null);returnds;}publicintAddvalues(stringN,stringS,stringB){SqlParameter[]para=newSqlParameter[3];para[0]=newSqlParameter("@Stu_name",SqlDbType.NVarChar,20,"Stu_name");para[0].Value=N;para[1]=newSqlParameter("@Stu_sex",SqlDbType.NVarChar,2,"Stu_sex");para[1].Value=S;para[2]=newSqlParameter("@Stu_birth",SqlDbType.DateTime,100,"Stu_birth");para[2].Value=DateTime.Parse(B);inti=CN.executeNuery("addStudent",CommandType.StoredProcedure,para);returni;}}}为什么调用Addvalues出现下列的错:过程Look没有参数,但却为该过程提供了参数。我的储存过程是这样的:USE[StudentInfo]GO/******Object:StoredProcedure[dbo].[Look]ScriptDate:11/23/201110:37:53******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERproc[dbo].[Look]asselect*fromStudentInfo我很奇怪我没有带参数确报错说提供参数?
解决方案
解决方案二:
哪个地方调用Addvalues方法了?Addvalues方法里面调用addStudent存储过程时的确写了三个参数而存储过程中没有参数啊,这样肯定出错,
解决方案三:
inti=CN.executeNuery("addStudent",CommandType.StoredProcedure,para);你没参数传什么对象啊para?????????????????????????????para变成null
解决方案四:
晕,看串了
解决方案五:
调用AddvaluesAddvalues里边传参了
解决方案六:
嗯,应该是楼主看错啦
解决方案七:
调试,是解决问题的最好方法...