0

パラメータを 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);
4

2 に答える 2

3

SqlParameterを、DateTimeではなくTimestampデータ型(バイト配列)として定義しました。日付範囲を表す場合、パラメータのデータ型をDateTimeに変更する必要があるように思われます。

于 2012-02-21T09:37:18.367 に答える
0

エラーが発生したのは、Convert.ToDateTimeが任意のオブジェクトから DateTime への暗黙的な変換を試みたためです。コントロールからのオブジェクトは文字列ですが、DateTime オブジェクトにキャストできるものではありません。実際には、文字列で表された日付と時刻です。

オブジェクトを構築する正しい方法DateTimeは、文字列を次のように解析することです。

DateTime.Parse(string input)
于 2012-02-21T10:51:18.030 に答える