2016-06-20 3 views
0

하나의 배열이 있습니다.배열을 DataTable에 저장하는 방법?

이 배열을 DataTable에 저장합니다.

내 코드와 같은 :

string[] myResult; 
DataTable dt = new DataTable(); 
dt.Columns.Add("myCategory"); 
for (int i = 0; i < myResult.Length; i++) 
{ 
    DataRow row = dt.NewRow(); 
    row[0] = myResult[i]; 
    dt.Rows.Add(row); 
} 

내 데이터 테이블 같은 :

myCategory: 
-+-+-+-+-+-+-+-+-+- 
    Student 
    Micheal 
    7.5 
    9.5 
    6.5 

하지만 같은이 저장하려면 :

Category   Name   Score 1   Score 2   Score 3 
Student   Micheal   7.5    9.5    6.5 

방법과 같이 열을 추가 할 수 있습니다.

+1

이 배열의 모양은 어떻습니까? 데이터 테이블에 필요한만큼의 열을 추가해야합니다. –

+1

다음과 같이 데이터 테이블에 열을 추가 할 수 있습니다. dt.Columns.Add ("Group", typeof (string)); –

답변

1

항상 첫 번째 열의 값을 row[0]으로 지정합니다. 어쩌면 당신은 하나의 DataRow있는 테이블을 만들려면 :

string[] myResult; // initialize .... 

DataTable dt = new DataTable(); 
foreach(string s in myResult) 
    dt.Columns.Add(); // or a named column, but you haven't provided any informations 

DataRow row = dt.Rows.Add(); // already added 
for (int i = 0; i < myResult.Length; i++) 
    row.SetField(i, myResult[i]); 

DataColumnCollection.Add()은 기본 이름 ("열 1", "열 2", ...)에 열을 추가합니다.

+0

그것은 나를 위해 일하고있다. – vanloc

+0

@ VănLộc 클린 코드로 클래스를 생성해야합니다. 하나 이상의 기록, 다루기 힘들 것입니다 –

+0

고마워, @ TripleK. 이것은 당신의 코멘트를 좋아해야한다 – vanloc

1

더 많은 열이 필요하며 또한 루프 후 dt에 새 행을 추가해야합니다. 그래서 당신이 원하는해야한다 :

string[] myResult = {"Student" , "Micheal" , "7.5" , "9.5" , "6.5"}; 
DataTable dt = new DataTable(); 
dt.Columns.Add("myCategory"); 
dt.Columns.Add("Name"); 
dt.Columns.Add("Score 1"); 
dt.Columns.Add("Score 2"); 
dt.Columns.Add("Score 3"); 
DataRow row = dt.NewRow(); 

for (int i = 0; i < myResult.Length; i++) 
{ 
    row[i] = myResult[i];  
} 

dt.Rows.Add(row); 

결과를 DataGridView에 :

Result

+0

대단히 고마워. – vanloc

1

는 아래의 코드를 작성 코드를

class MyResult 
{ 
    public String Category { get; set; } 
    public String Name { get; set; } 
    public float Score1 { get; set; } 
    public float Score2 { get; set; } 
    public float Score3 { get; set; } 

} 

을 취소 클래스를 만듭니다 귀하의 기능에.

List<MyResult> result = new List<MyResult>(); 
MyResult r1 = new MyResult 
{ 
    Category = "Student", 
    Name = "Micheal", 
    Score1 = 7.5f, 
    Score2 = 9.5f, 
    Score3 = 6.5f 
}; 

result.Add(r1); 

DataTable dt = new DataTable(); 
dt.Columns.Add("Category"); 
dt.Columns.Add("Name"); 
dt.Columns.Add("Score1"); 
dt.Columns.Add("Score2"); 
dt.Columns.Add("Score3"); 


foreach (MyResult item in result) 
{ 
    DataRow row = dt.NewRow(); 
    row["Category"] = item.Category; 
    row["Name"] = item.Name; 
    row["Score1"] = item.Score1; 
    row["Score2"] = item.Score2; 
    row["Score3"] = item.Score3; 
    dt.Rows.Add(row); 
} 
관련 문제