0

私はC#が初めてで、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
4

1 に答える 1

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

これは、実際にはdsXMlData行を参照していないテーブルとdrTempをコピーします。

私は、あなたはこのようなものを使わなければならないと思います:

 DataRow drTemp = dsXMlData.DefaultView[0].Row;
于 2012-10-23T07:27:48.383 に答える