PDA

View Full Version : سوال: ذخیره و بازیابی اطلاعات از طریق xml



baran_2005
شنبه 27 اسفند 1390, 10:54 صبح
سلام
تعدادی از رکوردهای یک جدول را انتخاب و داخل یک فایل xml ذخیره میکنم . فایل به صورت زیر ایجاد میشود .

<NewDataSet>
<Asnad>
<BAD0103>2</BAD0103>
<BAD1001>توضیحات</BAD1001>
<BAD1002>7</BAD1002>
<BAD0104>2</BAD0104>
<BAD1201>false</BAD1201>
</Asnad>
</NewDataSet>
حالا اول باید به کاربر نشون بدم تعدادی از رکوردها یا همه رکوردها رو انتخاب کندبعد عمل بازیابی صورت گیرد . اول با دستورات زیر داخل grid نمایش میدم

if (file_name_restore.HasFile)
{
file_name_restore.SaveAs(Server.MapPath("public_upload\\") + file_name_restore.FileName);
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("public_upload\\") + file_name_restore.FileName);
GridView1.DataSource = ds;
GridView1.DataBind();
}
حالا باید رکوردهای انتخابی داخل بانک ثبت شود . باید چکار کنم ؟ از داخل گرید چون همه فیلدها رو به کاربر نمایش نمیدم نمیتون مستقیم بخونم . با تابع زیر اومدم از داخل xml خوندم

public void loadxml(string tablename)
{
int j = 0;
XmlDocument doc = new XmlDocument();
if (file_name_restore.FileName.ToString() != "")
file_name_restore.SaveAs(Server.MapPath("xml\\") + file_name_restore.FileName);
doc.Load(Server.MapPath("xml/" + file_name_restore.FileName));

foreach (XmlNode node in doc)
if (node.Name == "NewDataSet")
{
// foreach (XmlElement element in node.ChildNodes)
foreach (XmlElement element in doc.SelectNodes(tablename))
{
j += 1;
for (int i = 0; i < node.ChildNodes.Count; i++)
{
fulldata = fulldata + (element.ChildNodes[i].InnerText) + ",";
}
fulldata += ";";
}
break;
}

}
ولی بازم برنامم جواب نمیده .
لطفا راهنماییم کنید چکار کنم عمل بازیابی رو باید چطوری انجام بدم . ممنون

minadehkordi
شنبه 27 اسفند 1390, 14:34 عصر
private void CreatexmlEmail(string Subject, string From, string[] To, string text, string path)
{
XmlDocument xmlDoc = new XmlDocument();

XmlElement EmailElement = xmlDoc.CreateElement("Email");

XmlElement SubjectElement = xmlDoc.CreateElement("Subject");
SubjectElement.InnerText = Subject;
EmailElement.AppendChild(SubjectElement);

XmlElement FromElement = xmlDoc.CreateElement("From");
FromElement.InnerText = From;
EmailElement.AppendChild(FromElement);
for (int i = 0; i < To.Length; i++)
{
XmlElement ToElement = xmlDoc.CreateElement("To");
ToElement.InnerText = To[i];
EmailElement.AppendChild(ToElement);
}

XmlElement textElement = xmlDoc.CreateElement("text");
textElement.InnerText = text;
EmailElement.AppendChild(textElement);

xmlDoc.AppendChild(EmailElement);
xmlDoc.Save(path + ".xml");

}





public class ReadXmlmailService : IRecEmailService
{
//emailId = xml مسیرکامل فایل
public CallResult RecEmail(string emailID)
{
string path =ServiceHelper.GetEmailPath(emailID);

string FileNameXML = path + ".xml";
CallResult res = new CallResult("");
EmailMessage msg = new EmailMessage();
XmlTextReader reader = new XmlTextReader(FileNameXML);
while (reader.Read())
{
if (reader.Name == "Subject" && reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
msg.Subject= reader.Value;
}

if (reader.Name == "From" && reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
msg.From = reader.Value;
}

if (reader.Name == "To" && reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
msg.To[0] = reader.Value;
//msg.To[1] = reader.Value;
}

if (reader.Name == "text" && reader.NodeType != XmlNodeType.EndElement)
{
reader.Read();
msg.Text= reader.Value;
}

}
res.ReturnObject = msg;
return res;
}
}

hesamsalehnamadi
شنبه 27 اسفند 1390, 16:04 عصر
دوست عزیز تو آدرس زیر برنامه ای که گذاشتم از xml استفاده کردم میتونی استفاده کنی
http://barnamenevis.org/showthread.php?332782-%D8%A2%D9%84%D8%A8%D9%88%D9%85-%D8%B9%DA%A9%D8%B3-%D8%A8%D8%A7-%D8%B3%DB%8C%D9%84%D9%88%D8%B1%D9%84%D8%A7%DB%8C%D 8%AA-%D9%88-asp.net-(%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D8%A8%D8%A7-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D8%B3%D9%87-%D9%84%D8%A7%DB%8C%D9%87)-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D9%86