2012-03-01 5 views
1

datagridview 내부를 시간 단위로 정렬하는 방법은 무엇입니까? 데이터 집합과 datagridview 형식의 XML 파일을 사용합니다.DataGridview 내부의 날짜순 정렬 방법

코드 C#을 윈폼 : 내가 가지고있는 출력에

FileStream stream = new FileStream("file.xml", FileMode.Open); 
ds.readXml(stream); 
Stream.Close(); 
datagridview1.DataSource = ds.Tables[0]; 
ds.Tables[0].DefaultView.Sort = "start asc"; 

XML 파일

<?xml version="1.0" standalone="yes"?> 
<Table> 
    <hours> 
    <Start>10:00 AM</Start> 
    </hours> 
<hours> 
    <Start>11:00 AM</Start> 
    </hours> 
<hours> 
    <Start>1:00 PM</Start> 
    </hours> 
<hours> 
    <Start>2:00 PM</Start> 
    </hours> 


</Table> 

, 그것은 분류 아니에요. 오후 1시 오후 2:00 오전 10시 오전 11시

+0

사람들은 내가 노력 문자열이 아닌 날짜 ... –

답변

0

은 데이터가 문자열이 아닌 날짜 시간 값으로로드되는 것 같습니다. 문자열로 올바르게 정렬됩니다. 날짜로 정렬하고 싶다면 string에서 DateTime으로 데이터를 변환해야합니다. 당신이 데이터를 변환하면

var accTable = new DataTable(); 

var columnSpec = new DataColumn("Date"); 
columnSpec.DataType = typeof(DateTime); 
accTable.Columns.Add(columnSpec); 

http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/e6b2aa61-bd1a-40f9-9e45-a538ed42c3d3

, 그것은 날짜로 분류한다 : 여기에 데이터를 변환하는 예입니다. 당신은 형 DateType의 또 다른 열을 추가하고 열 및 종류를 사용하여 "시작"의 이름으로 표현입니다 설정할 수

How to programmatically convert column type in DataGridView C#?

1

: 여기

는 DataGridView에 데이터를 변환하는 방법에 대한 SO에 대한 또 다른 질문입니다 이 칼럼 :

 FileStream stream = new FileStream("file.xml", FileMode.Open); 
     DataSet ds = new DataSet(); 
     ds.ReadXml(stream); 
     ds.Tables[0].Columns.Add("Temp", typeof(DateTime), "Start"); 
     stream.Close(); 
     dataGridView1.DataSource = ds.Tables[0]; 
     ds.Tables[0].DefaultView.Sort = "temp asc"; 
+0

하지만 내 응용 프로그램을 다시 시작하면, 나는 오류 메시지가 : '임시'라는 이름의 열이이 DataTable에 이미 속해 있습니다. – user1112847

+0

추가 된 열을 제거 할 수 있습니까? .. 응용 프로그램을 닫을 때 시도했지만 행운을 빕니다. – user1112847