2015-03-31 7 views
0

Я конвертирую XML в datatable и теперь хочу преобразовать таблицу данных в XML снова. У меня есть база данных, в которой четыре XML, есть и есть, чтобы изменить этот текст XML изменяетсяПреобразование datatable в XML

public ActionResult getChangeContent(string arg, string content) 
{ 
    char[] a = { ':' }; 
    string[] id = arg.Split(a); 
    decimal tid = Convert.ToDecimal(id[0]); 
    decimal jid = Convert.ToDecimal(id[1]); 
    string groupname = id[2]; 
    var gp = (from Trans_Mast in r2ge.Transcription_Master where Trans_Mast.Transcription_Id == tid && Trans_Mast.Entity_Id == jid select Trans_Mast).Distinct(); 

    foreach (var g in gp) 
    { 
     DataSet ds = new DataSet(); 
     ds.ReadXml(new XmlTextReader(new StringReader(g.Text_xml))); 
     DataTable text = ds.Tables[0]; 

     for (int i = 0; i < text.Rows.Count; i++) 
     { 
      if (text.Rows[i]["group"].Equals(groupname)) 
      { 
       text.Rows[i]["Text_Text"] = content; 
      } 
      text.AcceptChanges(); 
     } 
     ConvertDatatableToXML(text); 
    } 
    return View(); 
} 

public string ConvertDatatableToXML(DataTable dtTemp) 
{ 
    MemoryStream str = new MemoryStream(); 
    dtTemp.WriteXml(str, true); 
    str.Seek(0, SeekOrigin.Begin); 
    StreamReader sr = new StreamReader(str); 
    string xmlstr; 
    xmlstr = sr.ReadToEnd(); 
    return (xmlstr); 
} 

набора данных, но там не влияют на XML .. любое предложение пожалуйста ..

+0

Вы можете видеть изменения в тексте, передавая его функции (ConvertDataTableToXML()). отлаживайте свой код, какое значение имеет значение, и это то же значение в xml .. –

+0

значение изменяется, но не в XML .. это делает изменение в наборе данных только –

ответ

0

использовать этот кусок код:

private static string ConvertDataTableToXML(DataTable dtBuildSQL)  
{  
    DataSet dsBuildSQL = new DataSet();  
    StringBuilder sbSQL;  
    StringWriter swSQL;  
    string XMLformat;  

    sbSQL = new StringBuilder();  
    swSQL = new StringWriter(sbSQL); 

    dsBuildSQL.Merge(dtBuildSQL, true, MissingSchemaAction.AddWithKey);  
    dsBuildSQL.Tables[0].TableName = “Table”; 

    foreach (DataColumn col in dsBuildSQL.Tables[0].Columns)  
    { 
     col.ColumnMapping = MappingType.Attribute; 
    } 

    dsBuildSQL.WriteXml(swSQL, XmlWriteMode.WriteSchema); 
    XMLformat = sbSQL.ToString(); 
    return XMLformat;  
} 
+0

, когда я пишу ds.WriteXml («C: /project/Text_xml.xml «); то, в частности, foldar xml создается с изменением, но в базе данных все равно не влияет на xml –

Смежные вопросы