2013-03-15 5 views
0
DataTable dt1 = new DataTable(); 
      dt1.Columns.Add("studid",typeof(int)); 
      dt1.Columns.Add("rollno", typeof(int)); 
      dt1.Columns.Add("date", typeof(DateTime)); 
      dt1.Columns.Add("starttime", typeof(string)); 
      dt1.Columns.Add("class", typeof(string)); 
      dt1.Columns.Add("section", typeof(string)); 
      dt1.Columns.Add("subject", typeof(string)); 

      for (int i = 0; i < dt.Rows.Count; i++) 
      {    
       dt1.Rows.Add(Convert.ToInt32(dt.Rows[i]["id"]), Convert.ToInt32(dt.Rows[i]["rollno"]), Convert.ToDateTime(txtdate.Text),time.SelectedItem.ToString(), drpclass.SelectedItem.ToString(), drpsection.ToString(), drpsubject.SelectedItem.ToString()); 
      } 

내가 DataTable에의 열의 데이터 유형이 문자열이 경우에도 time.SelectedItem.ToString()에서 오류 "String was not recognized as a valid DateTime"을 얻고로 인식되지 않았습니다. 내가 중단 점을 적용 09:30:00 내가이 문제의 원인이 될 수 있음이 필드 txtdate.Texttime.SelectedItem.ToString() 당신이 어떤 값을문자열이 유효한 날짜 시간 오류

+6

그것은 Convert.ToDateTime가 예외를 throw하는 것이 더 가능성이 높습니다 :

는 그래서, 문자열의 시간을 얻기 위해 다음을 수행합니다 (이 드롭 다운 목록이라고 가정). –

+0

나는 그러한 단선을 피할 것이다. for-loop에서 변수를 사용하면 코드가 읽기 쉽고 디버깅이 간단 해집니다. –

+0

에서 오류가 발생합니다. time.SelectedItem.ToString() – Arbaaz

답변

0

에 점점 오전 값입니다. 텍스트 상자가 날짜 형식이 아닌 다른 값이 포함 된 경우

당신은 그래서

Convert.ToDateTime(txtdate.Text) 

을 다하고 있습니다. 그러면 오류가 발생합니다.

+0

"3/15/2013"은 값 id txtdate.Text이고 네 이것은 범인입니다. 어떻게 해결할 수 있을까요? 캘린더를 사용하여 해당 텍스트 상자에서 날짜를 선택합니다. – Arbaaz

1

string 값을 Datetime으로 변환 할 때 오류 메시지가 나타나는 것 같습니다. 이 변환이 일어나는

유일한 장소는

Convert.ToDateTime(txtdate.Text) 

라인이다. txtdate의 값을 다시 확인하고 유효한 날짜인지 확인하십시오.

+0

"3/15/2013"은 값 id txtdate.Text이고 예입니다. 이것이 범인입니다. 어떻게 해결할 수 있을까요? 캘린더를 사용하여 해당 텍스트 상자의 날짜를 선택합니다 – Arbaaz

+1

@Arbaaz 기본적으로 변환 형식은 american이며 dd/mm/yyyy와 같습니다. 월 15 일이 유효하지 않으므로 오류가 발생합니다. 달력 형식을 변경하여 날짜를 미국 형식으로 출력하거나 'IFormatProvider'를 변환 함수에 포함하십시오. 이에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx를 참조하십시오. 예 :'Convert.ToDateTime (txtdate.Text, new CultureInfo ("en-gb"))'. – Kami

+0

감사합니다 ...... +1 – Arbaaz

3

'09 : 30 : 00 '입력에는 해당 열의 데이터 형식이 날짜, 월, 일을 포함하는 DateTime 인 경우에만 시간이 표시됩니다.

string mytime= DateTime.Parse(DropDownlist.SelectedItem.Text.ToString()).ToShortTimeString(); 
관련 문제