不允许从数据类型 sql_variant 到 smalldatetime 的隐式转换
不允许从数据类型 sql_variant 到 smalldatetime 的隐式转换。请使用 CONVERT 函数来运行此查询。这个是什么意思啊?
我在更新时出现了这个!! --------------------编程问答-------------------- 估计是有个参数类型没有指定,或指定错误
贴 sql 源码
--------------------编程问答-------------------- ALTER PROCEDURE UpDateGB
(
@id int,
@Rboby varchar(4000),
@rCreateTime datetime
)
AS
update guestbooks
set
rboby = @Rboby,
rCreateTime = @rCreateTime
where
ID = @id
--------------------编程问答-------------------- // c# 就不贴了迈? .....
Commmand.Parameters.Add("@rCreateTime", SqlDbType.DateTime).Value = .... --------------------编程问答-------------------- 数据库表中列 rCreateTime 类型是不是 DateTime 还是 SmallDateTime ? --------------------编程问答-------------------- 数据库表中已经修改成datetime了,先开始是salldatetime,我以为是这个的问题,所以都改成了datetime.结果还是错误
下面是我的所有代码
DAL层
public int UpDateGB(GuestBooks gb)
{
int result;
sqlServerDB.AddParameter("@id", gb.ID);
sqlServerDB.AddParameter("@Rboby", gb.Rboby);
sqlServerDB.AddParameter("@rCreateTime", gb.RCreateTime);
result = sqlServerDB.ExecuteNonQuery("UpDateGB");
return result;
}
BLL层
public static int UpDataGBS(int id, string rBoby)
{
GuestBooks gb = new GuestBooks();
gb.ID = id;
gb.Rboby = rBoby;
gb.RCreateTime = DateTime.Now;
return dal.UpDateGB(gb);
}
结果就出错了!! --------------------编程问答-------------------- 看看! --------------------编程问答-------------------- 帮我看看啊,到底是哪里的问题啊?找了半天都没有找到! --------------------编程问答-------------------- 也遇到了你所说的类似错误,调整了2个小时,在SQL SERVER PROFILER里运行了一下 exec sp_executesql 得到的结果一样,仔细检查了一下,是程序里的参数顺序和数据库中的字段不一致,所以导致字段的类型不一致,也就出现了这个问题,对照调整一下就可以了。
补充:.NET技术 , ASP.NET