نمایش نتایج 1 تا 21 از 21

نام تاپیک: چهار عمل اصلی در دیتابیس xml

  1. #1

    چهار عمل اصلی در دیتابیس xml

    سلام دوستان
    میخواستم نحوه ی ایجاد دیتابیس xml را توضیح بدید و نحوه ی ایجاد جدول و فیلد و چهار عمل درج،حذف؛بروزرسانی و جستجو

  2. #2
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: چهار عمل اصلی در دیتابیس xml


  3. #3

    نقل قول: چهار عمل اصلی در دیتابیس xml

    اینا دیده بودم ولی درمورد جول و فیلد چیزی نگفته
    بعدش وقتی یه رکورد جدید اضافه میکنم قبلیه پاک میشه

  4. #4
    کاربر دائمی آواتار 13601360
    تاریخ عضویت
    آذر 1386
    محل زندگی
    کنار دریای خزر
    پست
    422

    نقل قول: چهار عمل اصلی در دیتابیس xml

    این مثال رو قبلا با VS2008 نوشته بودم
    امیدوارم کمکتون کنه
    فایل های ضمیمه فایل های ضمیمه

  5. #5

    نقل قول: چهار عمل اصلی در دیتابیس xml

    ایا در xml چیزی به اسم جدول مثل sql وجود داره؟

  6. #6

    نقل قول: چهار عمل اصلی در دیتابیس xml

    نه به اونصورت. در xml با node(گره)ها کار میکنید.

  7. #7

    نقل قول: چهار عمل اصلی در دیتابیس xml

    من نمیخوام از linq استفاده کنم میشه روش دیگه را بگید مثلا EF بیا . . .

  8. #8

    نقل قول: چهار عمل اصلی در دیتابیس xml

    سلام
    من یک فایل xml با نود های ایدی و نام و فامیل و سن و جنس و تلفن دارم
    توی ذخیره اطلاعات در این فرم مشکلی ندارم
    اما می خوام وقتی کاربر در تکس باکس ایدی رو وارد میکنه مثلا 3 اطلاعات مربوط به اون ایدی از فایل xml حذف بشه در ضمن از گرید هم استفاده نکردم
    و
    اینکه بتونم تمام اطلاعات یکی مونده به اخر رو (شامل ایدی و نام و فامیل و جنس و سن ) که در فایل xml ذخیره شه رو در تکس باکس ها لود کنم
    ممنون میشم کمکم کنید

  9. #9

    نقل قول: چهار عمل اصلی در دیتابیس xml

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

                XmlTextWriter XmlWrt = new XmlTextWriter("my database.xml", System.Text.Encoding.UTF8);
    XmlWrt.Formatting = Formatting.Indented;
    XmlWrt.WriteStartDocument();
    XmlWrt.WriteStartElement("", textBox1.Text);
    XmlWrt.WriteElementString("Name", textBox2.Text);
    XmlWrt.WriteElementString("Familly", textBox3.Text);
    XmlWrt.WriteElementString("age", textBox4.Text);
    XmlWrt.WriteEndElement();
    XmlWrt.WriteEndDocument();
    XmlWrt.Close();

  10. #10
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: چهار عمل اصلی در دیتابیس xml

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

                XmlTextWriter XmlWrt = new XmlTextWriter("my database.xml", System.Text.Encoding.UTF8);
    XmlWrt.Formatting = Formatting.Indented;
    XmlWrt.WriteStartDocument();
    XmlWrt.WriteStartElement("", textBox1.Text);
    XmlWrt.WriteElementString("Name", textBox2.Text);
    XmlWrt.WriteElementString("Familly", textBox3.Text);
    XmlWrt.WriteElementString("age", textBox4.Text);
    XmlWrt.WriteEndElement();
    XmlWrt.WriteEndDocument();
    XmlWrt.Close();
    مگر درون سورس بالا این کار ها رو انجام نمیده؟ خب نمونه بگیرید

  11. #11

    نقل قول: چهار عمل اصلی در دیتابیس xml

    برای اضافه کردن ابتدا باید کل سند را لود کنید، بعد بهش اضافه کنید و ذخیره کنید.
    مثال(ثبت مشخصات فردی):

    string xmlPath = Path.Combine(Application.StartupPath, "MyDatabase.xml");
    XmlDocument xmlDoc = new XmlDocument();
    XmlNode rootNode = null;

    if (File.Exists(xmlPath))
    {
    xmlDoc.Load(xmlPath);
    rootNode = xmlDoc.DocumentElement;
    }
    else
    {
    rootNode = xmlDoc.CreateElement("Root");
    xmlDoc.AppendChild(rootNode);
    }

    XmlNode personNode = xmlDoc.CreateNode(XmlNodeType.Element, "Person", null);
    XmlNode nameNode = xmlDoc.CreateNode(XmlNodeType.Element, "Name", null);
    XmlNode famillyNode = xmlDoc.CreateNode(XmlNodeType.Element, "Familly", null);
    XmlNode ageNode = xmlDoc.CreateNode(XmlNodeType.Element, "Age", null);


    nameNode.InnerText = textBox1.Text;
    famillyNode.InnerText = textBox2.Text;
    ageNode.InnerText = textBox3.Text;

    personNode.AppendChild(nameNode);
    personNode.AppendChild(famillyNode);
    personNode.AppendChild(ageNode);

    rootNode.AppendChild(personNode);

    xmlDoc.Save(xmlPath);
    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 28 تیر 1392 در 10:43 صبح

  12. #12

    نقل قول: چهار عمل اصلی در دیتابیس xml

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

                XmlDocument doc = new XmlDocument();
    doc.Load("my database.xml");
    XmlElement elmRoot = doc.DocumentElement;
    string xPath = "/Root/Person[@code='"+textBox10.Text+"']";
    XmlNode findnode = elmRoot.SelectSingleNode(xPath);
    if(findnode!=null )
    elmRoot.RemoveChild(findnode);
    doc.Save("my database.xml");


    بعد کد ویرایش و جستجو و لود کردن داخل گریدویو را میشه بزارید

  13. #13

    نقل قول: چهار عمل اصلی در دیتابیس xml

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

    class Person
    {
    string name;
    public string Name
    {
    get { return name; }
    set { name = value; }
    }

    string familly;
    public string Familly
    {
    get { return familly; }
    set { familly = value; }
    }

    UInt16 age;
    public UInt16 Age
    {
    get { return age; }
    set { age = value; }
    }
    }

    فرض کنید اشخاصی رو میخواهیم که سن آنها بین 20 تا 30 هست:

    string xmlPath = Path.Combine(Application.StartupPath, "MyDatabase.xml");
    XmlDocument xmlDoc = new XmlDocument();
    XmlNode rootNode;

    if (File.Exists(xmlPath))
    {
    xmlDoc.Load(xmlPath);
    rootNode = xmlDoc.DocumentElement;
    }
    else
    {
    MessageBox.Show("File is not exist!");
    return;
    }

    XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");
    List<Person> personList = new List<Person>();
    foreach (XmlNode node in personNodes)
    {
    string ageStr = node["Age"].InnerText;
    if (!string.IsNullOrWhiteSpace(ageStr))
    {
    UInt16 age = Convert.ToUInt16(ageStr);

    if (age >= 20 && age <= 30)
    {
    Person p = new Person()
    {
    Name = node["Name"].InnerText,
    Familly = node["Familly"].InnerText,
    Age = age
    };

    personList.Add(p);
    }
    }
    }

    dataGridView1.DataSource = personList;


    برای حذف به اینصورت:

    XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");
    if (personNodes.Count > 0)
    {
    for (int i = personNodes.Count - 1; i >= 0; i--)
    {
    XmlNode node = personNodes[i];
    string name = node["Name"].InnerText;
    string familly = node["Familly"].InnerText;
    string age = node["Age"].InnerText;

    if (name == textBox1.Text && familly == textBox2.Text && age == textBox3.Text)
    {
    rootNode.RemoveChild(node);
    break;
    }
    }

    xmlDoc.Save(xmlPath);
    }


    برای آپدیت هم مشابه همینه منتها به جای حذف باید InnerText رو تغییر بدید.
    فرض کنید نام و فامیل رو داریم و میخواهیم سن رو آپدیت کنیم:

    XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");

    foreach(XmlNode node in personNodes)
    {
    string name = node["Name"].InnerText;
    string familly = node["Familly"].InnerText;
    if (name == textBox1.Text && familly == textBox2.Text)
    {
    node["Age"].InnerText = textBox3.Text;
    break;
    }
    }

    xmlDoc.Save(xmlPath);
    آخرین ویرایش به وسیله Mahmoud.Afrad : شنبه 29 تیر 1392 در 10:27 صبح

  14. #14

    نقل قول: چهار عمل اصلی در دیتابیس xml

    نقل قول نوشته شده توسط ghamgin مشاهده تاپیک
    سلام
    من یک فایل xml با نود های ایدی و نام و فامیل و سن و جنس و تلفن دارم
    توی ذخیره اطلاعات در این فرم مشکلی ندارم
    اما می خوام وقتی کاربر در تکس باکس ایدی رو وارد میکنه مثلا 3 اطلاعات مربوط به اون ایدی از فایل xml حذف بشه در ضمن از گرید هم استفاده نکردم
    و
    اینکه بتونم تمام اطلاعات یکی مونده به اخر رو (شامل ایدی و نام و فامیل و جنس و سن ) که در فایل xml ذخیره شه رو در تکس باکس ها لود کنم
    ممنون میشم کمکم کنید
    سلام
    کسی نیست منو راهنمایی کنه؟؟؟؟
    ممنون میشم...

  15. #15

    نقل قول: چهار عمل اصلی در دیتابیس xml

    جواب هر دوتا سوال شما در کد حذف موجود است

  16. #16

    نقل قول: چهار عمل اصلی در دیتابیس xml

    نقل قول نوشته شده توسط negar.rafie مشاهده تاپیک
    جواب هر دوتا سوال شما در کد حذف موجود است
    سلام
    ممنونم از راهنماییت
    من کد حذف رو این جوری نوشتم
    اما روی خط
      rootNode.RemoveChild(node);

    این خطا رو میده
    Use of unassigned local variable 'rootNode'

    نمیدونم چطوری حلش کنم؟؟؟
    ممنون میشم راهنمایی کنید..و
    چطور با دادن ایدی رکورد یکی مونده به قبلش رو در تکس باکس ها لود کنم؟؟؟

    string xmlPath = Path.Combine(Application.StartupPath, "MyDatabase1.xml");
    XmlDocument xmlDoc = new XmlDocument();
    XmlNode rootNode;

    XmlNodeList personNodes = xmlDoc.GetElementsByTagName("Person");

    for (int i = personNodes.Count - 1; i >= 0; i--)
    {

    XmlNode node = personNodes[i];
    string name = node["Name"].InnerText;
    string familly = node["Familly"].InnerText;
    string age = node["Age"].InnerText;

    if (name == textBox1.Text && familly == textBox2.Text && age == textBox3.Text)
    {
    rootNode.RemoveChild(node);

    break;
    }
    }

    xmlDoc.Save(xmlPath);
    آخرین ویرایش به وسیله Mahmoud.Afrad : شنبه 15 خرداد 1395 در 06:04 صبح

  17. #17

    نقل قول: چهار عمل اصلی در دیتابیس xml

    نقل قول نوشته شده توسط ghamgin مشاهده تاپیک
    این خطا رو میده
    Use of unassigned local variable 'rootNode'
    باور کن اگر متن خطا رو برای خودت ترجمه کنی میفهمی مشکل چیه.


    باید یه مقدار اولیه به متغیر محلی rootNode بدی:
    XmlNode rootNode = null;

  18. #18

    نقل قول: چهار عمل اصلی در دیتابیس xml

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    باور کن اگر متن خطا رو برای خودت ترجمه کنی میفهمی مشکل چیه.


    باید یه مقدار اولیه به متغیر محلی rootNode بدی:
    XmlNode rootNode = null;
    گلم من که مثل شما حرفه ای نیستم..
    الان این خطا رو با زدن باتن حذف میده
    Invalid XML document. The document does not have a root element.

  19. #19

    نقل قول: چهار عمل اصلی در دیتابیس xml

    break point زدم
    مشکل اینه که با وجود ایتم های زیادی که درفایل xml دارم
    اما در کد
    for (int i = personNodes.Count - 1; i >= 0; i--)
    i رو منفی یک میده
    مشکل چیه؟؟؟

  20. #20

    نقل قول: چهار عمل اصلی در دیتابیس xml

    حلقه رو بزار داخل یک if چک کن تعداد بزرگتر از 0 باشه. کد حذف رو اصلاح کردم دوباره ببین.

  21. #21

    نقل قول: چهار عمل اصلی در دیتابیس xml

    بازم همون خطا رو میده
    انگار بی تاثیره..
    ؟؟؟
    ممنون

تاپیک های مشابه

  1. چهار عمل اصلی در اسمبلی
    نوشته شده توسط Metaldevil در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 20
    آخرین پست: سه شنبه 22 آذر 1390, 11:52 صبح
  2. سوال: تبدیل یک عدد به مبنای2(باینری) در C فقط با استفاده از Printf و چهار عمل اصلی
    نوشته شده توسط Nice-Boy در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: یک شنبه 09 اسفند 1388, 19:43 عصر
  3. چهار عمل اصلی
    نوشته شده توسط esfahan2000 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 12 مرداد 1388, 08:46 صبح
  4. کمک جهت انجام چهار عمل اصلی در سی شارپ و اکسس
    نوشته شده توسط rcpu2002 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 09 تیر 1386, 19:34 عصر
  5. چهار عمل اصلی در چندجمله ای
    نوشته شده توسط aabbcc در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 3
    آخرین پست: چهارشنبه 20 دی 1385, 02:45 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •