SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 Int32 对象。System.Data

hertcloud 2004-07-09 11:07:33
SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 Int32 对象。System.Data

搞了 一个上午 没有搞明白
参数全部 都给了 值了
而且 类型 正确
而且在sql里面调试 一切正常!·
就是 页面 一使用 就报
上面的错误!
...全文
430 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
bushido 2004-07-09
  • 打赏
  • 举报
回复
说错了,是
SqlParameter p1back=(SqlParameter)((ICloneable)sqlparamer1).Clone();
//=============================
SqlCommand cm2 = new SqlCommand(this.conn,sql2);
cm2.parameters.add(p1back);
cm2.ExecuteNonQuery();
这样用也可以
bushido 2004-07-09
  • 打赏
  • 举报
回复
SqlParameter p1=new SqlParameter("@p1",SqlDbType.VarChar,50);
p1.value="bushido";
SqlCommand cm = new SqlCommand(this.conn,sql);
cm.parameters.add(p1);
cm.ExecuteNonQuery();
//=========这里最好加上cm.Parameters.Clear();
cm.Parameters.Clear()
或是
SqlParameter p1back=(SqlParameter)((ICloneable)sqlparamer1).Clone();
//=============================
SqlCommand cm2 = new SqlCommand(this.conn,sql2);
cm2.parameters.add(p1);
cm2.ExecuteNonQuery();
这样用也可以
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
如果SqlParameter类的对象要重用的话,必需使用Clone()
sqlparamer1back=(SqlParameter)((ICloneable)sqlparamer1).Clone();
??
不解!·~
bushido 2004-07-09
  • 打赏
  • 举报
回复
不用贴存储过程啦,兄弟
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
存储过程 如下

ALTER PROCEDURE upload_album
@auserid int,
@apicName nvarchar(50),
@apicPath varchar(200),
@apicType int,
@apicSource bit,
@apicPixs varchar(50),
@apicInfo nvarchar(200),
@apicSize int,
@aviewCounts int,
@adownCounts int,
@aupTime datetime,
@anomobile varchar,
@apicIFView bit
AS
insert into
album
(userID,picName,picPath,picType,picSource,picPixs,picInfo,picSize,viewCounts,downCounts,upTime,NoMobile,picIFView)
values(
@auserid,
@apicName,
@apicPath,
@apicType,
@apicSource,
@apicPixs,
@apicInfo,
@apicSize,
@aviewCounts,
@adownCounts,
@aupTime,
@anomobile,
@apicIFView
)
bushido 2004-07-09
  • 打赏
  • 举报
回复
to hertcloud(重载∮DOTNET 学习(JS))
或是在第二次调用SqlParameter之间,先Clear()
bushido 2004-07-09
  • 打赏
  • 举报
回复
各位老大,帮小弟解决这个问题吧
如何在web.config里设置qualifyAssembly元素的publicKeyToken属性值
http://community.csdn.net/Expert/topic/3159/3159407.xml?temp=.1641046
bushido 2004-07-09
  • 打赏
  • 举报
回复
嘿嘿,这个碰巧我知道
如果SqlParameter类的对象要重用的话,必需使用Clone()
sqlparamer1back=(SqlParameter)((ICloneable)sqlparamer1).Clone();

我帮你解决了这个问题,你帮我看看这个问题
如何在web.config里设置qualifyAssembly元素的publicKeyToken属性值
http://community.csdn.net/Expert/topic/3159/3159407.xml?temp=.1641046
wcbgyjs 2004-07-09
  • 打赏
  • 举报
回复
存储过程变量是怎么定义的?
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
// string upload_album1="insert into album"+"(userID,picName,picPath,picType,picSource,picPixs,picInfo,picSize,viewCounts,downCounts,upTime,NoMobile,picIFView)"+
//" values("+userID+",'"+picName+"','"+picPath+"',"+picType+","+picSource+",'"+picPixs+"','"+picInfo+"',"+picSize+","+viewCounts+","+downCounts+",'"+loadTime+"','"+mobile+"',"+picIFView+")";
//
使用这个直接更新 完全 没有问题!
但是 一用下面的参数 传给 存储过程就有 提示的错误!!
存储过程在sql查询分析里面调试完全 没有问题!

分不够再加!!!!!!!!!!
分不够再加!!!!!!!!!!
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
public void Upload_Album(int userID,string picName,string picPath,int picType,int picSource,string picPixs,string picInfo,int picSize,int viewCounts,int downCounts,DateTime loadTime,string mobile,int picIFView)
{
SqlConnection conn=new SqlConnection(connString);
//
// string upload_album1="insert into album"+"(userID,picName,picPath,picType,picSource,picPixs,picInfo,picSize,viewCounts,downCounts,upTime,NoMobile,picIFView)"+
//" values("+userID+",'"+picName+"','"+picPath+"',"+picType+","+picSource+",'"+picPixs+"','"+picInfo+"',"+picSize+","+viewCounts+","+downCounts+",'"+loadTime+"','"+mobile+"',"+picIFView+")";
//
// //调用更新数据存储过程
SqlCommand comm=new SqlCommand("upload_album",conn);
comm.CommandType=CommandType.StoredProcedure;

//确定参数——值
SqlParameter upUID=new SqlParameter("@auserid",SqlDbType.Int);
SqlParameter upName=new SqlParameter("@apicName",SqlDbType.NVarChar,50);
SqlParameter upPath=new SqlParameter("@apicPath",SqlDbType.VarChar,200);
SqlParameter upType=new SqlParameter("@apicType",SqlDbType.Int);
SqlParameter upSource=new SqlParameter("@apicSource",SqlDbType.Bit);
SqlParameter upPixs=new SqlParameter("@apicPixs",SqlDbType.VarChar,50);
SqlParameter upInfo=new SqlParameter("@apicInfo",SqlDbType.NVarChar,200);
SqlParameter upSize=new SqlParameter("@apicSize",SqlDbType.Int);
SqlParameter upvCounts=new SqlParameter("@aviewcounts",SqlDbType.Int);
SqlParameter updCounts=new SqlParameter("@adowncounts",SqlDbType.Int);
SqlParameter uploadTime=new SqlParameter("@aupTime",SqlDbType.DateTime);
SqlParameter upMobile=new SqlParameter("@anomobile",SqlDbType.VarChar);
SqlParameter upIFView=new SqlParameter("@apicIFView",SqlDbType.Bit);

upUID.Value=userID;
upName.Value=picName;
upPath.Value=picPath;
upType.Value=picType;
upSource.Value=picSource;
upPixs.Value=picPixs;
upInfo.Value=picInfo;
upSize.Value=picSize;
upvCounts.Value=viewCounts;
updCounts.Value=downCounts;
uploadTime.Value=loadTime;
upMobile.Value=mobile;
upIFView.Value=picIFView;

comm.Parameters.Add(userID);
comm.Parameters.Add(upName);
comm.Parameters.Add(upPath);
comm.Parameters.Add(upType);
comm.Parameters.Add(upSource);
comm.Parameters.Add(upPixs);
comm.Parameters.Add(upInfo);
comm.Parameters.Add(upSize);
comm.Parameters.Add(upvCounts);
comm.Parameters.Add(updCounts);
comm.Parameters.Add(uploadTime);
comm.Parameters.Add(upMobile);
comm.Parameters.Add(upIFView);

try
{
conn.Open();
comm.ExecuteNonQuery();
//return i;
}
finally
{
if(conn.State==ConnectionState.Open)
{
conn.Close();
}
}
}
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
老大们给点 意见啊!
救命!!!!!!!
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
急啊!!!!!!!!!!!!!
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
类型 和名称 都没有错误的!
string upload_album1="insert into album"+"(userID,picName,picPath,picType,picSource,picPixs,picInfo,picSize,viewCounts,downCounts,upTime,NoMobile,picIFView)"+
" values("+userID+",'"+picName+"','"+picPath+"',"+picType+","+picSource+",'"+picPixs+"','"+picInfo+"',"+picSize+","+viewCounts+","+downCounts+",'"+loadTime+"','"+mobile+"',"+picIFView+")";

SqlCommand comm=new SqlCommand(upload_album1,conn);
conn.Open();
comm.ExecuteNonQuery();
这样直接 更新 就 没有问题

elite2018 2004-07-09
  • 打赏
  • 举报
回复
for value type,
you can try to use obj.Iscolumnnull to judge . and change column to your column name
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
增加 了一个返回 字段
@uID

存储过程 里也加了
@uID int output
select @uID=@@Identity
还是一样的错误
bushido 2004-07-09
  • 打赏
  • 举报
回复
SqlParameter upMobile=new SqlParameter("@anomobile",SqlDbType.VarChar);的长度值怎么没有了
elite2018 2004-07-09
  • 打赏
  • 举报
回复
wait , I will find answer
hertcloud 2004-07-09
  • 打赏
  • 举报
回复
upupupupupupup
bushido 2004-07-09
  • 打赏
  • 举报
回复
怎么可能哪~~~~~~~~~
加载更多回复(5)

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧