2012-02-11 2 views
0

XML 파일에서 데이터 집합을 읽은 다음 새 열을 추가하고 해당 열의 각 행에 값을 할당합니다.DataTable 항목 배열이 할당되지 않음

내 프로그램에서 새 열을 만들고 실행하는 동안 디버그 화면에서 BitmapImage 데이터 유형을보고 toString에 데이터 유형을 사용하여 볼 수 있습니다.

하지만 그 행의 열에 할당하려고하면 '{}'로 유지되고 사용하려고하면 'DBNull을 BitmapImage 형식으로 변환 할 수 없습니다'오류가 발생합니다.

ItemDS = new DataSet(); 
ItemDS.ReadXml(homeFolder + @"Items.xml", XmlReadMode.InferSchema); 
ItemDS.Tables[0].Columns.Add("pic", typeof(BitmapImage)); 
MessageBox.Show(ItemDS.Tables[0].Columns[5].DataType.ToString()); 
foreach (DataRow theRow in ItemDS.Tables[0].Rows) 
{ 
    try 
    { 
     theRow.ItemArray[5] = (SquareImageFromFile(NewDeployFolder + @"assets\images\items\" + theRow.ItemArray[3].ToString(), 120)); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
    combItem.Items.Add(theRow.ItemArray[0]); 
} 

할당 행을 실행할 때 오류는 발생하지 않지만 행을 실행 한 후에는 항목 배열에 아무런 변화가 없습니다.

답변

1

나는 많은 DataTable을 사용하지 않은,하지만 난 오히려 "라이브"배열을 어느 DataRow 트랙을 돌아보다, 데이터의 복사 할 ItemArray을 기대. 나는 정말로 그 일을 기대하지 않았을 것입니다. 단지 인덱서를 통해 값을 설정하십시오 :

theRow[5] = (SquareImageFromFile(NewDeployFolder + @"assets\images\items\" + 
           theRow[3].ToString(), 120)); 

ItemArray

정말 얻을 의미 또는 오히려 단일 값에 대한보다 대량으로 값을 설정한다.

+0

어, 저는 정말 그런 느낌입니다. 구문을 고쳐 주셔서 감사합니다. 지금은 완벽하게 작동합니다! – user1178412

관련 문제