2013-12-24 5 views
1

하이의 간격으로 '지금'에 주어진 특정 날짜의 데이터를 가져옵니다 소프트웨어 설치 날짜로 데이터베이스에서 데이터를 검색해야하는 특정 날짜는 현재 시간을 의미합니다.내가 요구 사항이 2010 년</p> <p>C#을 Visual Studio에서 다른 하나 개의 데이터베이스 서버에서 데이터를 검색하는 응용 프로그램을 개발하고 15분

2010-03-05 16:30:23과 같은 가장 오래된 레코드를 얻을 때 다음 레코드와 첫 번째 레코드 차이는 다음 레코드가 2010-03-05 16:45:23이어야하는 것처럼 15 분이어야한다는 조건이 하나 더 있습니다. 분당 레코드가있는 데이터베이스.

아래에서 시도했지만 그 요구 사항을 충족하지 못합니다.

try 
{ 
    var con = new SqlConnection(Properties.Settings.Default.sConstr); 
    var cmd = new SqlCommand("SELECT * from RAW_S001T01 where Date_Time >='" + time + "'", con); 
    con.Open(); 
    var dr = cmd.ExecuteReader(); 
    var count = 0; 
    while (dr.Read()) 
    { 
    var Date = (dr["Date_Time"].ToString()); 
    var temp = Date.ToString(CultureInfo.InvariantCulture); 
    var UTime=time.Split(':'); 
    string tempa = UTime[1].Substring(0, 2); 
    time = temp +int.Parse("15"); 
    MessageBox.Show(time); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(@"Error.",ex.ToString()); 
} 

어떻게 해결할 수 있습니까?

+1

그럼 정확히 어떤 부분이 잘못 될까요? 그것은 무엇을하거나하지 않습니까? –

+1

새로운 "cmd"설정이 while 루프 외부에있는 것처럼 보이므로 결코 새로운 시간을 얻지 못합니다. –

+1

@ LanceRoberts 지금까지 특정 날짜까지 모든 레코드를 받고 있습니다. 나는 15 분 간격으로 그들을 원한다. –

답변

4

다음을 시도해보십시오.
그냥 while 루프를 수정하고이 코드를 사용하십시오.

var Date = Convert.ToDateTime(dr["Date_Time"]); 
Date = Date.AddMinutes(15); 
MessageBox.Show(Date.ToString()); 

희망이 있습니다.

2

15 분 후에 변수를 설정하면됩니다 (Abhishek의 대답에 따라).

그런 다음 그 시간보다 적은 모든 항목을 처리하십시오. 해당 시간보다 긴 항목을 찾으면 해당 시간을 업데이트하고 (추가로 15 분 추가) 출력을 데이터 구조의 다음 섹션으로 리디렉션하십시오. 끝날 때까지 루핑을 계속하십시오.