2012-10-23 58 views
0

我是C#的新手,我正在更新帶有新字段的xml數據。這些字段不會在我的xml文件中更新。在我的應用程序是顯示更新成功,但它在XML文件中我沒有找到任何修改......我正在做XML更新它成功顯示更新,但它不會更改實際字段。怎麼做?

#region UpdateCountry method defination 
    public void UpdateCountry() 
    { 
     Image myimg = Image.FromFile(_strLargePath); 
     Bitmap myBitmapLarge = new Bitmap(myimg, 64, 64); 

     string strFileLarge = string.Format(@"..\..\imageLarge\{0}", Path.GetFileName(_strLargePath)); 

     //Store Large Image File In Desire Folder 
     myBitmapLarge.Save(strFileLarge); 

     //Convert those image into 40 * 40 format 
     Bitmap myBitmapSmall = new Bitmap(myimg, 40, 40); 
     //store it into Desired Small Image folder 

     string strFileSmall = string.Format(@"..\..\imageSmall\{0}", Path.GetFileName(_strLargePath));  

     myBitmapSmall.Save(strFileSmall); 
     dsXMlData.Tables[0].DefaultView.RowFilter = string.Format("Name='{0}'", txtCountryName.Text); 


     string[] strColArr = new string[] { "CapitalCity", "Currency", "Population", "NatLanguage", "LargeImgPath", "SmallImgPath"}; 

     string[] strValArr = new string[] 

     {txtCapitalCity.Text,txtCurrency.Text,txtPopulation.Text, 
      txtLangualge.Text,strFileLarge,strFileSmall}; 
     DataRow drTemp = dsXMlData.Tables[0].DefaultView.ToTable().Rows[0]; 
     //Updation Starts here 
     drTemp.BeginEdit(); 

     for (int intindex = 1; intindex < strColArr.Length; intindex++) 
     { 
      drTemp[strColArr[intindex]] = strValArr[intindex]; 
     } 
     drTemp.EndEdit(); 

     dsXMlData.AcceptChanges(); 

     //Updation complete 

     dsXMlData.WriteXml(@"..\..\Countries.xml"); 

     MessageBox.Show("Updated Successfully"); 
     // LoadXMlData(); 
    } 
    #endregion 

回答

0
DataRow drTemp = dsXMlData.Tables[0].DefaultView.ToTable().Rows[0]; 

這是抄表drTemp實際上不參考dsXMlData行。

我想,你必須使用這樣的事情:

DataRow drTemp = dsXMlData.DefaultView[0].Row; 
+0

請幫助我,我如何能實現?我想更新只有第一行,這就是爲什麼我使用.Rows [0],而不是任何方法遵循,請幫助我....感謝提前 – rangasathish

相關問題