PDA

View Full Version : نوشتن یک دیتا تیبل در فایل xml بصورت رکورد به رکورد



komeil64
یک شنبه 20 اسفند 1391, 12:29 عصر
از طریق کد زیر یک فایل اکسل رو آپلود می کنم و توی دیتا گرید نشون میدم

string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string fileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName) ;
string fileLocation = Server.MapPath("~/App_Data/" + fileName);
FileUpload1.SaveAs(fileLocation);
string Exfilepath = fileLocation;
OleDbConnection MyConnection =
new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Exfilepath +
";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';");
if (fileExtension == ".xlsx")
{

MyConnection =
new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Exfilepath +
";Extended Properties=\'Excel 12.0;HDR=YES;IMEX=1;';");
}

DataSet DtSet = null;

DataTable dt = new DataTable();
OleDbDataAdapter MyCommand = null;
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
DtSet = new System.Data.DataSet();
MyCommand.Fill(DtSet);
dt = DtSet.Tables[0];

GridView1.DataSource = dt;
GridView1.DataBind();

که نتیجه یک فایل اکسل مثل تصویر زیر میشه
101203

حالا می خوام به صورتی که اسم فیلد و مشخصات یک رکورد رو عوض کنم اون رو توی فایل xml بنویسم
یعنی توی یک حلقه دونه دونه رکورد ها خونده بشه و پس از تغییرات روی اسمشون توی xml نوشته بشن
مثلا ردیف اول اینطور بشه
<S1>
<سند>1</سند>
<شرح سند>تست سند سه بابت تست سه</شرح سند>
<تاریخ سند>1391/11/06</تاریخ سند>
</S1>

<S2>
<سند>1</سند>
<شرح سند>تست سند سه بابت تست سه</شرح سند>
<تاریخ سند>1391/11/06</تاریخ سند>
</S2>

crazy_1892
یک شنبه 20 اسفند 1391, 12:40 عصر
دوست عزیز مستقیم از حود sql بریز تو xml

تو گوگلم یه سرج sql to xml کلی sample بهت میده

komeil64
یک شنبه 20 اسفند 1391, 12:50 عصر
با یک خط کد مستقیم میشه
اما اولا من از اکسل می خونم رکورد ها رو
ثانیا می خوام روی هر رکورد یک پردازش انجام بدم بعدش بنویسم توی xml

na3er-faraji
یک شنبه 20 اسفند 1391, 14:59 عصر
اول همه رکروردهاتو توی دیتابیس ذخیره کن بعد که کارت تموم شد فایل xml ت رو آپدیت کن

public void CreateGroupXML()
{

DataSet dsGroup = new DataSet();
string strCon;

strCon = "data source=.;initial catalog=db;persist security info" +
"=False;user id=sa;password=123;";

string strSelect = "SELECT dbo.Groups.GroupId, dbo.Groups.GroupTitle,ISNULL(Groups_1.GroupId,'') AS GroupParentId, isnull(Groups_1.GroupTitle,'') AS GroupParentTitle, dbo.Groups.Grouplevel, dbo.Groups.GroupPriority FROM dbo.Groups LEFT OUTER JOIN dbo.Groups AS Groups_1 ON dbo.Groups.GroupParent = Groups_1.GroupId WHERE(dbo.Groups.GroupIsEnabled = 1) order by grouplevel,GroupParentId";

SqlConnection sqlCon = new SqlConnection(strCon);
SqlDataAdapter empAdapter = new SqlDataAdapter(strSelect, sqlCon);
empAdapter.Fill(dsGroup, "Group");
XmlDataDocument empDoc = new XmlDataDocument(dsGroup);
empDoc.Save(HttpContext.Current.Server.MapPath("~/App_Code/Xml/Groups.xml"));
}