【发布时间】:2012-03-10 23:33:55
【问题描述】:
将参数从 DateTime 转换为 Byte[] 时出错。 想法是显示通过控件输入并显示在 GridView 上的 2 个指定日期之间的数据,并使用存储过程访问数据。我不明白错误,但我猜测所有数据都放在一个数组中并传递给存储过程:
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);
【问题讨论】:
-
你好马尔维娜,欢迎来到 StackOverflow。我们在准确查看这里发生的情况时遇到了一些问题,因为我们缺少一些信息(例如您使用的编程语言,以及您使用的数据库引擎和/或框架)。请帮助我们通过填写这些空白来帮助您。
-
感谢您的回复。我正在使用 .Net 框架、C# 和 MS SQL Server 2005。
-
错误是否发生在
DateTime dtDateBegin = Convert.ToDateTime(sDateBegin);上?如果是这样,这可以通过使用DateTime.Parse(string input)来解决(见msdn.microsoft.com/en-us/library/1k1skd40.aspx)我还不能确定的原因是很难说出你提到的存储过程和gridview 控件在做什么;) -
感谢蒂莫西,这确实有效!谢谢一百万:)
-
不客气。我添加了一个答案,应该澄清发生了什么:)
标签: c# gridview datatable dataadapter sqlparameter