繁体   English   中英

无法将参数值从DateTime转换为Byte []

[英]Failed to convert parameter value from a DateTime to a Byte[]

我将参数从DateTime转换为Byte []时出错。 想法是显示在两个指定日期之间的数据,这些日期通过控件输入并显示在GridView上,并使用存储过程访问数据。 我不明白该错误,但是我猜所有的数据都放在一个数组中并传递给存储过程:

string sDateBegin = Request.Form["fromDate"];
DateTime dtDateBegin = Convert.ToDateTime(sDateBegin);
SqlParameter prmDateBegin = new SqlParameter("datebegin", SqlDbType.Timestamp);
prmDateBegin.Value = dtDateBegin;
cmdProc.Parameters.Add(prmDateBegin);

//same code for DateEnd

// data table
DataTable dataTable = new DataTable();

AGridView.DataSourceID = null;

// data adapter
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmdProc);
AGridView.DataSource = dataTable;

//fill datatable
dataAdapter.Fill(dataTable);

您已将SqlParameter定义为Timestamp数据类型(它是字节数组),而不是DateTime。 给定您要表示的日期范围,这听起来应该将参数数据类型更改为DateTime。

发生错误是因为Convert.ToDateTime试图将任何对象隐式转换为DateTime。 来自控件的对象是一个字符串,但是不能转换为DateTime对象。 实际上,它是由字符串表示的日期和时间。

构造DateTime对象的正确方法是使用

DateTime.Parse(string input)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM