OleDb 如何将DateTime类型的参数传入到存储过程?

hcfalan 2003-11-29 08:15:27
本人使用OleDb来执行一个带DateTime类型参数的存储过程, 代码如下:

OleDbCommand cmd = new OleDbCommand("[PROC_KAOHE]");
...
cmd.Parameters.Add("ENDDATE", OleDbType.DBTimeStamp, 8);
cmd.Parameters["ENDDATE"].Value = new DateTime(2003, 10, 1);
...
try
{
cmd.ExecuteNonQuery();
}
catch(Exception exp)
{
...
}

运行的时候总是出现 OleDbException 异常,提示如下:
The statement has been terminated.
String or binary data would been truncated.

(注: 存储过程描述
CREATE PROC PROC_KAOHE
@ENDDATE DATETIME
AS
...
)
请问此类问题该如何解决??? 急, 在线等待!!!
...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
py3zhsh 2003-12-02
  • 打赏
  • 举报
回复
收藏
simanh 2003-11-30
  • 打赏
  • 举报
回复
作字符串传吧,数据库会自动帮你转成DateTime的
沈逸 2003-11-29
  • 打赏
  • 举报
回复
cmd.Parameters.Add("@ENDDATE", OleDbType.DateTime, 8);
thj981190 2003-11-29
  • 打赏
  • 举报
回复
你可以把OleDbType.Date 改为OleDbType.String .就可以,。
把日期作为字符串传入。。绝对可行。因为我以前遇到这种问题。
就是这样解决的。
孟子E章 2003-11-29
  • 打赏
  • 举报
回复
cmd.Parameters["ENDDATE"].Value = new DateTime(2003, 10, 1,0,0,0);
hcfalan 2003-11-29
  • 打赏
  • 举报
回复
我有试过啊,
cmd.Parameters.Add("ENDDATE", OleDbType.DBDate, 8);
or
cmd.Parameters.Add("ENDDATE", OleDbType.Date, 8);
or
cmd.Parameters.Add("ENDDATE", OleDbType.DBTime, 8);

都试过了, 还是出现同样的问题!!! 要抓狂拉
孟子E章 2003-11-29
  • 打赏
  • 举报
回复
主要是类型不匹配问题
孟子E章 2003-11-29
  • 打赏
  • 举报
回复
cmd.Parameters.Add("ENDDATE", OleDbType.DBDate, 8);

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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