当前位置:编程学习 > C#/ASP.NET >>

不允许从数据类型 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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,