2011-12-28 2 views
0

私は小さな質問があります。 私はdateTimePickerを使用しており、カレンダーを作成しました。C#、SQLデータベースを使用する方法

private void dateTimePicker1_ValueChanged(object sender, EventArgs e) 
    { 
     DateTime varDate; 
     varDate = dateTimePicker1.Value; 
    } 

submitというボタンを作成しました。 マイタスクは、日付が選択され、ボタンがクリックされたときに、データグリッド上のデータベースから選択された日付までのレコードを表示する必要があります。 たとえば、12.28.2011を選択すると、その日付よりも短いレコードがすべて表示されます。 データベース接続を作成しました。しかし、どのように日付を比較することができますか?

私はこれに関するいくつかのアドバイスをしてください。 この質問をお読みいただきありがとうございます。

+1

C#.NETでデータベースを操作する方法についてチュートリアルを検索してみましたか? –

答えて

0

DBからすべてのデータをロードするかどうか、またはDBから指定された日付までしかデータをロードしないかどうかによって異なります。

最初のアプローチを使用すると、DateTimeオブジェクトを使用して日付を保持することができます。read more here.これを行うことで得られるのは、読み込むために1つのデータベース接続すべてのデータがメモリに保持されていなければならず、多くのデータがある場合は、多くのデータをロードする可能性があります。これは、例えば、早いページ付けを行います。

2番目の方法を使用する場合は、SQL文にwhere句を設定して、文に基づいて日付がロードされないようにする必要があります。read more about sql hereこれはあなたが実際に表示したいレコードのみを提供しますが、日付を変更するとさらにDB接続を開く必要があります。これによりページネーションなどが遅くなります。

0

たぶん、このようなものが役立ちます:

string query = "SELECT * FROM YourTable WHERE dateField < @dateParameter"; 
SqlCommand sqlCommand = new SqlCommand(query, yourConnection); 
sqlCommand.Parameters.Add("dateParameter", SqlDbType.DateTime).Value = dateTimePicker1.Value; 

または

var filteredList = yourFullList.Where(x=>x.date<dateTimePicker1.Value); 

またはあなたがやって何をより多くの情報/コードを提供します。

関連する問題