首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 String 对象解决思路

2012-02-20 
SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 String 对象未处理的“System.Invalid

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)这个重载就可以让你直接添加参数了。

热点排行