2017-07-21 10 views
1

私はasp.net Webフォームページにグラフを持っています。私は同じSQLテーブルから2つの変数を結合して作成されたカスタムクエリでそれを埋めるしたいです。私はまた、SQL Serverのテーブルから開始日時(年、月、日、時、分)を選択したいasp.net chart aspx.csファイルからSQL Serverのカスタムクエリで読み取る

String year2 = Convert.ToString(dropDownStartYear.Text); 
String month2 = Convert.ToString(dropDownMonth2.Text); 
String day2 = Convert.ToString(dropDownDay2.Text); 
String hour2 = Convert.ToString(dropDownHour2.Text); 
String minute2 = Convert.ToString(dropDownMinute2.Text); 

String year3 = Convert.ToString(dropdownYear3.Text); 
String month3 = Convert.ToString(dropDownMonth3.Text); 
String day3 = Convert.ToString(dropDownDay3.Text); 
String hour3 = Convert.ToString(dropDownHour3.Text); 
String minute3 = Convert.ToString(dropDownMinute3.Text); 

SqlConnection connection = ConnectionManager.getConnection(); 
SqlCommand cmd = new SqlCommand(); 
cmd.Connection = connection; 
cmd.CommandText = "SELECT id, temperature, year, month, day , hour, minu from datab where year = @year and [email protected] and [email protected] and [email protected] and [email protected] ; "; 
cmd.Parameters.AddWithValue("@year", year2); 
cmd.Parameters.AddWithValue("@month", month2); 
cmd.Parameters.AddWithValue("@day", day2); 
cmd.Parameters.AddWithValue("@hour", hour2); 
cmd.Parameters.AddWithValue("@minute", minute2); 

SqlDataReader reader = cmd.ExecuteReader(); 

while (reader.Read()) 
{ 

} 

を選択します。ここでは

コード(クエリ)であります終了日に同じ変数を使用します。 次に、開始時刻から終了時刻までの「温度」を描きたい。

ヘルプがありますか?

+0

をそうか、これは何をしないのですか? – CodeCaster

+0

どこにコードを置くのですか? –

+0

これは2つの別個の質問のようです。クエリを構築するアドレスの下に答えます。 .aspxページにあなたのチャートのコントロールがありますか? – Poosh

答えて

1

入力の日付部分のDateTimeオブジェクトをビルドしてテーブルに格納して、このクエリを試してみてください。それは、それが簡単に選択した入力値によって、あなたの戻り値を比較して制限するために行う必要があります。

cmd.CommandText = @"select [id], [temperature], [year], [month], [day], [hour], [minu] 
from datab 
where DATETIMEFROMPARTS([year], [month], [day], [hour], [minu], 0, 0) 
between DATETIMEFROMPARTS(@year2, @month2, @day2, @hour2, @minute2, 0, 0) 
and DATETIMEFROMPARTS(@year3, @month3, @day3, @hour3, @minute3, 0, 0)"; 

// beginning of date range 
cmd.Parameters.AddWithValue("@year2", year2); 
cmd.Parameters.AddWithValue("@month2", month2); 
cmd.Parameters.AddWithValue("@day2", day2); 
cmd.Parameters.AddWithValue("@hour2", hour2); 
cmd.Parameters.AddWithValue("@minute2", minute2); 

// end of date range 
cmd.Parameters.AddWithValue("@year3", year3); 
cmd.Parameters.AddWithValue("@month3", month3); 
cmd.Parameters.AddWithValue("@day3", day3); 
cmd.Parameters.AddWithValue("@hour3", hour3); 
cmd.Parameters.AddWithValue("@minute3", minute3); 
0

は、このクエリをお試しください...

cmd.CommandText = "SELECT id, temperature, year, month, day , hour, minu from datab 
where CONVERT (datetime , cast(year as varchar)+'-'+cast(month as varchar)+'-'+cast(day as varchar)+' '+cast(hour as varchar)+':'+cast(minute as varchar)+':'+'00' , 20) >= CONVERT (datetime , @yearfrom+'-'[email protected]+'-'[email protected]+' '[email protected]+':'[email protected]+':'+'00' , 20) 
and CONVERT (datetime , cast(year as varchar)+'-'+cast(month as varchar)+'-'+cast(day as varchar)+' '+cast(hour as varchar)+':'+cast(minute as varchar)+':'+'00' , 20) <= CONVERT (datetime , @yearTo+'-'[email protected]+'-'[email protected]+' '[email protected]+':'[email protected]+':'+'00' , 20);"; 
+0

どこに置いたらいいですか? –

+0

Pooshが示唆しているコードをコード –

+0

の短いコードで使うことができます。どこに置いたらいいですか? –

関連する問題