2013-04-29 2 views
2

저는 여러분이 제가 가지고있는 작은 문제에 도움을 줄 수 있기를 바랍니다. datareader 값이 지정된 dateTime 값보다 작은 지 확인하고 몇 가지 도움이 필요하면 몇 가지 오류가 발생합니다. 따라서 위 if 문 - datareader 값을 datetime과 비교합니다.

DateTime feedate = new DateTime(2013,09,01); 
if (rsData["M_Start"] != DBNull.Value) & (Convert.ToDateTime(rsData["M_Start"]).ToString("yyyy/mm/dd") < feedate) 

내가 무엇을 내가지고있어 오류 메시지 '만을 지정 통화 증가 감소 및 새 개체 표현 진술로 사용할 수 있습니다'입니다.

C#은 여전히 ​​내게 정말 새롭기 때문에 약간의 도움이 필요합니다.

감사합니다.

+0

'&'와'&&'두 개의 서로 다른 사업자 ... 의견에 대한 – Sachin

답변

6
  1. 당신은 당신이 모든 문자열로 변환 왜
  2. 당신이하는 StringDateTime을 비교하지 말아야 대신
  3. 대신 DataReader.IsDBNull를 사용해야하는 논리적이고 &&를 사용해야합니까?

DateTime feedate = new DateTime(2013, 09, 01); 
if (!rsData.IsDBNull(rsData.GetOrdinal("M_Start")) && (DateTime)rsData["M_Start"] < feedate) 
{ 
    // ... 
} 
+0

감사는 -이 훨씬 더 논리적 내 방식보다 내가 다른 물건으로 그것을 고려거야 I 하고있어. – PipBoy

+0

@PipBoy : 날짜 부분 만 비교하려면 ['DateTime.Date'] (http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx)를 사용할 수 있습니다 . 이 속성은 주어진 'DateTime'자정을 반환합니다. –

0

괄호와 '및'연산자가 잘못되었습니다. 코드 읽어야

DateTime feedate = new DateTime(2013,09,01); 
if (rsData["M_Start"] != DBNull.Value && Convert.ToDateTime(rsData["M_Start"]).ToString("yyyy/mm/dd") < feedate) 
{ 
    // code 
} 

& 연산자는 비트 단위 또는 && 연산자 동안 논리합이다. if 문은 if (… condition goes here …)과 같이 괄호 안에 조건을 사용합니다.

참고 : 팀 슈멜 터 (Tim Schmelter)가 대답 한 바에 따르면 몇 가지 다른 결함이 있습니다.