PDA

View Full Version : سوال: ذخیره دیتاگرید در فایل xml



shytonak
سه شنبه 11 آبان 1389, 08:06 صبح
دوستان من خیلی گشتم اما چیزی که بتونه مشکل منو حل کنه پیدا نکردم ممنون میشم راهنمایی کنید.
من می خوام اطلاعات دیتاگرید ویو رو توی یه فایل xml ذخیره کنم.

M.YasPro
سه شنبه 11 آبان 1389, 08:12 صبح
سلام
کجا و گشتین که پیدا نکردید !!:لبخند:


DataTable dt = new DataTable("itemstable");

for(int i=0; i<itemDataGridView.ColumnCount; i++){
dt.Columns.Add(itemDataGridView.Columns[i].Name,typeof(System.String));
}

DataRow myrow ;
int icols = itemDataGridView.Columns.Count;
foreach (DataGridViewRow drow in this.itemDataGridView.Rows) {
myrow = dt.NewRow();
for (int i = 0; i <= icols - 1; i++) {

myrow[i] = drow.Cells[i].Value;
}
dt.Rows.Add(myrow);
}

dt.WriteXml("items.xml");


منبع : stackoverflow
موفق باشید ./

shytonak
سه شنبه 11 آبان 1389, 08:24 صبح
دوست من میشه راهنمایی کنید که کجای این کد باید مسیر ذخیر فایل xml رو وارد کنم و چطور.

M.YasPro
سه شنبه 11 آبان 1389, 08:28 صبح
dt.WriteXml("items.xml");

به جای item.xml مسیر مورد نظر رو وارد کنید .
مثلا:


dt.WriteXml(@"c:\items.xml");

موفق باشید./

ali_autumnal
سه شنبه 11 آبان 1389, 08:51 صبح
سلام

اگه بخواییم دیتابیس مون کلا XML باشه بایستی چه کارهایی انجام بدیم؟

M.YasPro
سه شنبه 11 آبان 1389, 09:04 صبح
به این نرم افزار متن باز (http://barnamenevis.org/forum/showpost.php?p=881427&postcount=6) نگاه کنید .
یه نمونه دیگه (http://www.codeproject.com/KB/database/XMLData.aspx) برای استفاده از xml به جای دیتابیس .

موفق باشید ./

shytonak
سه شنبه 11 آبان 1389, 13:36 عصر
ممنون از راهنماییتون.
میشه یه راهنمایی دیگه هم بکنید که حالا چطور این فایلی که ذخیره کریدم رو لود کنیم.

M.YasPro
سه شنبه 11 آبان 1389, 14:00 عصر
می تونید از متد های DataTable.ReadXml (http://msdn.microsoft.com/en-us/library/system.data.datatable.readxml.aspx) و DataSet.ReadXml (http://msdn.microsoft.com/en-us/library/system.data.dataset.readxml.aspx) استفاده کنید .

shytonak
سه شنبه 11 آبان 1389, 14:23 عصر
میشه یه نمونه کد برام بزارید که با کد بالا که برای ذخیره بود سازگاری داشته باشه و بتونه فایل هایی که با کد بالا ذخیره شدن رو باز کنه.

M.YasPro
سه شنبه 11 آبان 1389, 15:39 عصر
اون کد قبل رو فراموش کنید .
این کد رو نوشتم :


private DataTable fillDataTable()
{
DataTable dt = new DataTable("table");
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("family");
for (int i = 0; i <= 10; i++)
dt.Rows.Add(new object[] {i.ToString(),"name"+i.ToString(),"family"+i.ToString() });
return dt;
}

private void cmdFillDataGridView_Click(object sender, EventArgs e)
{
DataTable dt = fillDataTable();
dataGridView1.DataSource = dt;
}

private void cmdWriteXmlFile_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable("table");
dt = dataGridView1.DataSource as DataTable;
dt.WriteXml(@"d:\table.Xml");
dt.WriteXmlSchema(@"d:\tableSchema.Xml");
dataGridView1.DataSource = null;
}

private void cmdLoadXmlFile_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable("table");

dt.ReadXmlSchema(@"d:\tableSchema.Xml");
dt.ReadXml(@"d:\table.Xml");
dataGridView1.DataSource = dt;
}

elec645
شنبه 15 آبان 1389, 19:53 عصر
سلام
من می خوام یک جدول داشته باشم که یک سری اطلاعات رو که از یک سخت افزار دریافت می کنم رو نمایش بدم.
جدول من 5 تا ستون داره یا 6 تا.
من می خوام اطلاعات رو از سخت افزار بخونم و در این جدول نمایش بدم.
یعنی هر وقت بخوام بتونم سطری به این جدول اضافه کنم و همچنین بتونم در این جدول به هر ستونی که می خوام دسترسی داشته باشم و اون رو عوض کنم.
و بتونم یک فیلتر داشته باشم که مثلا سطرهای خاصی رو نمایش بدم.
با این تفاسیر چطوری می تونم از این بحث اینجا استفاده کنم.
البته می خوام بتونم ا ین جدول رو هم تو یک فایل ذخیره کنم به طوری که فقط تو برنامه خودم بتونم بخونم و بفهمم و اگه یکی دیگه با یک نرم افزار دیگه اون رو باز کرد نتونه بفهمه توش چیه

elec645
شنبه 15 آبان 1389, 20:41 عصر
من در اصل در مرحله اول می خوام بتونم یک ستون از جدولی که ساختم رو ویرایش کنم. یعنی اون رو بخونم یک سری عملیات روش انجام بدم و بعد دوباره سرجاش بنویسم.:ناراحت:
و زمانی که جدول رو فیلتر کردم بتونم بفهمم چه سطرهایی مونده تا اونا رو بتونم ذخیره کنم :متفکر: