SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 String 对象
未处理的“
System.InvalidCastException”类型的异常出现在 system.data.dll 中。
其他信息: SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 String 对象。
我的语句如下
SqlConnection cn =new SqlConnection( "Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=test;Data Source=server ");
cn.Open();
SqlCommand sc=new SqlCommand();
sc.Connection=cn;
sc.CommandType=CommandType.StoredProcedure;
sc.CommandText= "testsql ";
sc.Parameters.Add(new SqlParameter( "@buy ",SqlDbType.VarChar,11).Value=buy.ToString());
sc.Parameters.Add(new SqlParameter( "@date ",SqlDbType.VarChar,10).Value=date.ToString());
sc.Parameters.Add(new SqlParameter( "@flag ",SqlDbType.VarChar,1).Value=flag.ToString());
sc.Parameters.Add(new SqlParameter( "@ino ",SqlDbType.VarChar,15).Value=ino.ToString());
sc.Parameters.Add(new SqlParameter( "@count ",SqlDbType.Int,4));
sc.ExecuteNonQuery();
请问要如何处理,我希望能在WebService中执行这样的过程???
------解决方案--------------------sc.Parameters.Add(new SqlParameter( "@buy ",SqlDbType.VarChar,11).Value=buy.ToString());
sc.Parameters.Add(new SqlParameter( "@date ",SqlDbType.VarChar,10).Value=date.ToString());
sc.Parameters.Add(new SqlParameter( "@flag ",SqlDbType.VarChar,1).Value=flag.ToString());
sc.Parameters.Add(new SqlParameter( "@ino ",SqlDbType.VarChar,15).Value=ino.ToString());
sc.Parameters.Add(new SqlParameter( "@count ",SqlDbType.Int,4));
---》
sc.Parameters.Add(new SqlParameter( "@buy ",buy.ToString());
sc.Parameters.Add(new SqlParameter( "@date ",date.ToString());
sc.Parameters.Add(new SqlParameter( "@flag ",flag.ToString());
sc.Parameters.Add(new SqlParameter( "@ino ",ino.ToString());
sc.Parameters.Add(new SqlParameter( "@count ",count);
------解决方案--------------------sc.Parameters.Add(new SqlParameter( "@buy ",SqlDbType.VarChar,11).Value=buy.ToString());
==>
SqlParameter buyParame = new SqlParameter( "@buy ",SqlDbType.VarChar,11);
tabParame.Value = buy.ToString();
sc.Parameters.Add(buyParam);
....
下面的依次...
------解决方案--------------------sc.Parameters.Add( "@buy ",buy.ToString()); // 底下依次
除非你要写Output Parameter,不然Add(string paraName, object paraValue)这个重载就可以让你直接添加参数了。