2012-02-20 34 views
0

DateTimeからByte []に​​パラメータを変換中にエラーが発生しました。 コントロールを介して入力され、GridViewに表示され、ストアドプロシージャを使用してデータにアクセスする2つの指定された日付の間にデータを表示することです。私は、エラーを理解していないが、私は、すべてのデータが配列に入れて、ストアドプロシージャに渡されることを推測している:DateTimeのパラメータ値をByte []に​​変換できません

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); 
+0

こんにちはmalvina、文字列を解析することです。 ここで何が起こっているのかを正確に見ていく上で問題があります。使用しているプログラミング言語や使用しているデータベースエンジンやフレームワークなどの情報が不足しているためです。 これらの空白を記入して、お手伝いをしてください。 –

+0

返信ありがとうございます。 – malvina

+0

DateTime dtDateBegin = Convert.ToDateTime(sDateBegin);でエラーが発生しますか? もしそうなら、これはおそらく 'DateTime.Parse(文字列入力)'(http://msdn.microsoft.com/en-us/library/1k1skd40.aspxを参照)を使用して解決することができます 私は 'あなたが言っているストアドプロシージャとgridviewコントロールが何をしているのかを知ることは難しいです;) –

答えて

2

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

+1

+1。もう1人は、タイムスタンプの意味を文書では読んでいない。私はそれが好きです。この質問は、高齢者のためのインタビューに適している - ちょうどサイドクエスチョン、(間違った答えを得る)、履歴書を取って、それが所属する場所に置く - ゴミ箱。タイムスタンプのデータ型はタイムスタンプとは関係ありません;) – TomTom

+0

残念ながら、私はこれを既に試してみましたが、何の違いもなくエラーも同じでした。 – malvina

0

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

DateTimeオブジェクトを構築するための正しい方法はStackOverflowのを歓迎

DateTime.Parse(string input) 
関連する問題