PDA

View Full Version : ذخیره اطلاعات در xml و فراخونی آن



nurani
پنج شنبه 12 فروردین 1395, 20:27 عصر
اطلاعات درون دیتا گرید هست حالا می خوام توسط savefiledialog درون xmlذخیره کنم و دوباره با openfiledialogدرون دیتاگرید نمایش دهم
از بخش جستجو تاپیکی مناسبی پیدا نکردم

ژیار رحیمی
پنج شنبه 12 فروردین 1395, 22:14 عصر
ساختار فایل xml

<dataset>
<student>
<Id>1</Id>
<Name>کاوه</Name>
<Family>رحیمی</Family>
</student>
</dataset>

نحوه لود وذخیره

private void LoadFromXml()
{
var openFileDialog1 = new OpenFileDialog { Multiselect = false, DefaultExt = ".Xml", Filter = @"Xml files (*.Xml) |*.Xml" };
if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
if (!openFileDialog1.CheckFileExists) return;
var ds = new DataSet();
ds.ReadXml(openFileDialog1.FileName);
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "student";
}
private void SaveToXmal()
{
var saveFileDialog1 = new SaveFileDialog
{
InitialDirectory = @"C:\",
DefaultExt = "Xml",
Filter = @"Text files (*.Xml)|*.Xml|All files (*.*)|*.*"
};
if (saveFileDialog1.ShowDialog() != DialogResult.OK) return;
var ds = (DataSet)dataGridView1.DataSource;
ds.WriteXml(saveFileDialog1.FileName);
}

Pr0grammer
جمعه 13 فروردین 1395, 02:02 صبح
این آموزش (http://kharaee.com/index.php/component/jdownloads/viewdownload/3/16?Itemid=0) هم شاید به دردتون بخوره...

موفق باشید/

nurani
جمعه 13 فروردین 1395, 10:56 صبح
با سپاس از اساتید محترم
از شانس بد من یه مشکل کوچک رو نمی تونم چند روزه حل کنم
ببینید دوستان من یه دیتا گرید دارم که به هیچ بانک و دیتا تیبل و ... متصل نیست
فقط با مقادیر تکست باکس اون دیتا گرید رو پر می کنم و داده ها نمایش داده میشه
مجبورم فقط از طریق تکست باکس دیتا گرید رو پر کنم و امکان ابتدا درج در فایل برام ممکن نیست
حالا می خوام داده ها رو داخل فایل xml ذخیره کنم اگه امکانش هست درون فایل xml به صورت ستونی نمایش داده بشه مانند
1 علی محمدی
2 فرهاد محمدی
3 بهروز محمدی
حالا اگه نشد اصلا هر جوری ذخیره بشه مهم نیست
فقط موقع فراخوانی در دیتا گرید همانند زمان ذخیره نمایش داده بشه
کتاب معرفی شده توسط Pr0grammer (http://barnamenevis.org/member.php?70458-Pr0grammer)خوب بود دقیقا عین کد رو نوشتم و اولین رکورد ثبت میشه ولی رکوردهای بعدی رو خطا میگیره

آقای رحیمی کد در هنگام ذخیره خطا می گیره 139806

ژیار رحیمی
جمعه 13 فروردین 1395, 17:53 عصر
دوست گرامی
DataSource شما null میباشد شما وقتی دیتاگرید شما فاقد رکورد(ِdataGridView2.DataSource=null) هست بهتره قبل از خطا یه چکی صورت گیرد.شما وقتی دیتاگرید خالی بوده اقدام به ذخیره سازی کردی.

if(ds==null)return;
ds.WriteXml(saveFileDialog1.FileName);

nurani
جمعه 13 فروردین 1395, 18:17 عصر
دوست گرامی
DataSource شما null میباشد شما وقتی دیتاگرید شما فاقد رکورد(ِdataGridView2.DataSource=null) هست بهتره قبل از خطا یه چکی صورت گیرد.شما وقتی دیتاگرید خالی بوده اقدام به ذخیره سازی کردی.

if(ds==null)return;
ds.WriteXml(saveFileDialog1.FileName);


شاید این طور بوده ولی تا جایی که یادمه چند تا رکورد رو نمایش دادم و دکمه ثبت رو زدم بعدش همان لحظه دوباره دکمه ثبت رو زدم حتی چندین بار امتحان کردم احتمالا مشکلم جایی دیگه بوده

ولی با این برنامه مشکل کاملا حل شد این برنامه دقیقا رکورد ها رو عین خواسته ام در فایل ذخیره و فراخوانی میکنه

http://barnamenevis.org/attachment.php?attachmentid=104321&d=1368835810

بازم خیلی خیلی تشکر استاد

ژیار رحیمی
جمعه 13 فروردین 1395, 20:20 عصر
شاید این طور بوده ولی تا جایی که یادمه چند تا رکورد رو نمایش دادم و دکمه ثبت رو زدم بعدش همان لحظه دوباره دکمه ثبت رو زدم حتی چندین بار امتحان کردم احتمالا مشکلم جایی دیگه بوده

ولی با این برنامه مشکل کاملا حل شد این برنامه دقیقا رکورد ها رو عین خواسته ام در فایل ذخیره و فراخوانی میکنه

http://barnamenevis.org/attachment.php?attachmentid=104321&d=1368835810

بازم خیلی خیلی تشکر استاد

دوست گرامی شما دیتاسورسی به دیتاگرید انتساب ندادی و بصورت دستی سطر و ستون های دیتا گرید رو پرکردی که باز دیتا سورس شما null میباشد شما قبل از عملیات ذخیره سازی میبایست دیتای داخل دیتاگرید رو به یه دیتاسورس یا دیتاتیبل تبدیل کنی بعد فرایند ذخیره سازی رو انجام میدادی.