ارسال اطلاعات به فایل xml
سلام دوستان
من نیاز دارم که تو سورس وی بی دات نتم از داخل نرم افزار اطلاعاتی رو بفرستم به فایل xml یا sxml که مثل گزینه زیر باشه و در هر دفعه یکی اضاف کنه بفرستم:
<RizSnd>
<Rdif>1</Rdif>
<CodMoin>مقدار</CodMoin>
<CodTfzili>مقدار</CodTfzili>
<Shrh>مقدار</Shrh>
<MblgBdhkar>0</MblgBdhkar>
<MblgBstankar>مقدار</MblgBstankar>
<Sth5>0</Sth5>
<Sth6>0</Sth6>
<Del>true</Del>
<bdhkar>0</bdhkar>
<bstankar>مقدار</bstankar>
<Mgdar>0</Mgdar>
<TdadArz>0</TdadArz>
</RizSnd>
دوستان راهنمای کنید خیلی ضروریه ممنون میشم
نقل قول: ارسال اطلاعات به فایل xml
نقل قول:
نوشته شده توسط
niknam_mh
سلام دوستان
من نیاز دارم که تو سورس وی بی دات نتم از داخل نرم افزار اطلاعاتی رو بفرستم به فایل xml یا sxml که مثل گزینه زیر باشه و در هر دفعه یکی اضاف کنه بفرستم:
<RizSnd>
<Rdif>1</Rdif>
<CodMoin>مقدار</CodMoin>
<CodTfzili>مقدار</CodTfzili>
<Shrh>مقدار</Shrh>
<MblgBdhkar>0</MblgBdhkar>
<MblgBstankar>مقدار</MblgBstankar>
<Sth5>0</Sth5>
<Sth6>0</Sth6>
<Del>true</Del>
<bdhkar>0</bdhkar>
<bstankar>مقدار</bstankar>
<Mgdar>0</Mgdar>
<TdadArz>0</TdadArz>
</RizSnd>
دوستان راهنمای کنید خیلی ضروریه ممنون میشم
وقتی شما یک کلاسی داشته باشید (که فرضا مشخصه یا فیلد هایی به اسم Rdif و CodMoin داره)، XmlSerializer خیلی ساده شیء اون کلاس رو تبدیل می کنه به XML یا برعکس XML رو تبدیل می کنه به شیء اون کلاس.
فرض کنیم همچین کلاسی دارید :
Class RizSnd
Public Rdif As Integer
Public CodMoin As Integer
Public CodTfzili As Integer
End Class
یا همچین کلاسی :
Class RizSnd
Public Property Rdif As Integer
Public Property CodMoin As Integer
Public Property CodTfzili As Integer
End Class
اونوقت اگر می خواهید XML بدون اضافه کردن Declaration استاندارد XML نوشته بشه، مثل اون مثال خودتون :
Public Shared Function ObjectToXml (obj As Object) As String
Dim serializer = New Xml.Serialization.XmlSerializer (obj.GetType ())
Dim settings = New Xml.XmlWriterSettings ()
Dim namespaces = New Xml.Serialization.XmlSerializerNamespaces (New Xml.XmlQualifiedName () {Xml.XmlQualifiedName.Empty})
settings.OmitXmlDeclaration = True
settings.Indent = True
Using w As New IO.StringWriter ()
Using ww = Xml.XmlWriter.Create (w, settings)
serializer.Serialize (ww, obj, namespaces)
Return w.ToString ()
End Using
End Using
End Function
یا همراه با Declaration استاندارد نوشته بشه :
Public Shared Function ObjectToXml (obj As Object) As String
Dim serializer = New Xml.Serialization.XmlSerializer (obj.GetType ())
Using w As New IO.StringWriter ()
serializer.Serialize (w, obj)
Return w.ToString ()
End Using
End Function
مثلا :
Dim r As New RizSnd
Dim xml = ObjectToXml (r)
MessageBox.Show (xml)
نقل قول: ارسال اطلاعات به فایل xml
سلام دوست عزیز
ممنونم از پاسختون از وقتی که گذاشتید حالا چند تا سوال دارم:
1- چطور بهشون مقدار بدیم
2- چطور بفرستیمش رو فایل xml
3- چطور هر دفعه یه ردیف بهش اضافه بشه
4- چطور میتونیم از روی فایل لودش کنیم داخل دیتا گرید ویو
ممنون از شما
نقل قول: ارسال اطلاعات به فایل xml
سلام دوست عزیز وقت بخیر
دوست عزیزمون the king توضیحات خوبی ارائه دادند و به نظرم کامل و جامع بود منتحی من هم یک نظری دارم
اطلاعات که قراره ذخیره کنی رو حالا از داخل دیتاگرید و یا دیتاست یا دیتاتیبل.مستقیم xml کن اینجوری فکر کنم کارت راحتتر بشه.چون فکر میکنم میخوای هر سری یک ردیف به اطلاعات اضافه کنی
خب برای شروع اول یک دیتاگرید توی فرم قرار بده به همراه دو باتن بعد کدهای زیر رو توش قرار بده.توضیحات لازم رو برات نوشتم.حالا هرجوری دوست داشتی از این اطلاعات استفاده کن
موفق باشی
Public Class Form1
'......................................... تیبل رو تعریف میکنیم...................................... ...
Dim datatable As New DataTable
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'......................................... نام جدول انتخاب میکنیم...................................... ...
datatable.TableName = "RizSnd"
'......................................... اینجا بر اساس فیلدی که خواستی یک دیتاتیبل تعریف میکنیم و نام جدول انتخاب میکنیم...................................... ...
datatable.Columns.Add("CodMoin")
datatable.Columns.Add("CodTfzili")
datatable.Columns.Add("Shrh")
datatable.Columns.Add("MblgBdhkar")
datatable.Columns.Add("MblgBstankar")
datatable.Columns.Add("Sth5")
datatable.Columns.Add("Sth6")
datatable.Columns.Add("Del")
datatable.Columns.Add("bdhkar")
datatable.Columns.Add("bstankar")
datatable.Columns.Add("Mgdar")
datatable.Columns.Add("TdadArz")
'..............................................د این قسمت یه ردیف به جدول اضافه میکنیم و هر جور خواستید بهش مقدار میدین.......................................
datatable.Rows.Add()
datatable.Rows(0)("CodMoin") = "1"
datatable.Rows(0)("CodTfzili") = "مقدار"
datatable.Rows(0)("Shrh") = "مقدار"
datatable.Rows(0)("MblgBdhkar") = "0"
datatable.Rows(0)("MblgBstankar") = "مقدار"
datatable.Rows(0)("Sth5") = "0"
datatable.Rows(0)("Sth6") = "0"
datatable.Rows(0)("Del") = "true"
datatable.Rows(0)("bdhkar") = "0"
datatable.Rows(0)("bstankar") = "مقدار"
datatable.Rows(0)("Mgdar") = "0"
datatable.Rows(0)("TdadArz") = "0"
'................................................. ......مثلا من میخوام دو تا ردیف داشته باشه جدولم....................................
datatable.Rows.Add()
datatable.Rows(1)("CodMoin") = "2"
datatable.Rows(1)("CodTfzili") = "مقدار"
datatable.Rows(1)("Shrh") = "مقدار"
datatable.Rows(1)("MblgBdhkar") = "0"
datatable.Rows(1)("MblgBstankar") = "مقدار"
datatable.Rows(1)("Sth5") = "0"
datatable.Rows(1)("Sth6") = "0"
datatable.Rows(1)("Del") = "true"
datatable.Rows(1)("bdhkar") = "0"
datatable.Rows(1)("bstankar") = "مقدار"
datatable.Rows(1)("Mgdar") = "0"
datatable.Rows(1)("TdadArz") = "0"
'................................اینجا اطلاعات رو توی دیتاگرید نمایش میده........................................
Me.DataGridView1.DataSource = datatable
'................................xml........این جا بهش مسیر برای ذخیره میدیم................................
datatable.WriteXml("C:\Desktop\900\1.xml")
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
'......................................... یه دیتاست تعریف میکنیم...................................... ...
Dim DataSet As New DataSet
'................................xml........این جا بهش مسیر برای بازگرداندن اطلاعات میدیم................................
DataSet.ReadXml("C:Desktop\900\1.xml")
'......................................... تیبل رو تعریف میکنیم...................................... ...
datatable = DataSet.Tables("RizSnd")
'................................اینجا اطلاعات رو توی دیتاگرید نمایش میده........................................
Me.DataGridView1.DataSource = datatable
End Sub
End Class
نقل قول: ارسال اطلاعات به فایل xml
سلام آقا حمیدرضا گل
ممنونم از لطف شما و دوست عزیزمون the king
نقل قول: ارسال اطلاعات به فایل xml
سلام دوست عزیز
الان فایلی که بوجود میاد به صورت زیر است :
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<RizSnd>
<CodMoin>1</CodMoin>
<CodTfzili>مقدار</CodTfzili>
<Shrh>مقدار</Shrh>
<MblgBdhkar>0</MblgBdhkar>
<MblgBstankar>مقدار</MblgBstankar>
<Sth5>0</Sth5>
<Sth6>0</Sth6>
<Del>true</Del>
<bdhkar>0</bdhkar>
<bstankar>مقدار</bstankar>
<Mgdar>0</Mgdar>
<TdadArz>0</TdadArz>
</RizSnd>
</DocumentElement>
ولی من می خواهم یه فایل برام بسازه به صورت زیر:
<?xml version="1.0" standalone="yes"?>
<DsSnd xmlns="http://tempuri.org/DsSnd.xsd">
<RizSnd>
<CodMoin>1</CodMoin>
<CodTfzili>مقدار</CodTfzili>
<Shrh>مقدار</Shrh>
<MblgBdhkar>0</MblgBdhkar>
<MblgBstankar>مقدار</MblgBstankar>
<Sth5>0</Sth5>
<Sth6>0</Sth6>
<Del>true</Del>
<bdhkar>0</bdhkar>
<bstankar>مقدار</bstankar>
<Mgdar>0</Mgdar>
<TdadArz>0</TdadArz>
</RizSnd>
</DsSnd>
یعنی به جای <DocumentElement> و </DocumentElement> مقدار <DsSnd xmlns="http://tempuri.org/DsSnd.xsd> و </DsSnd> قرار بده
به نظر شما راهی داره ؟
ممنون میشم راهنماییم کنید خیلی لازم دارم :قلب:
نقل قول: ارسال اطلاعات به فایل xml
دوست عزیز بعضی مواقع راهکارهایی هست که شما رو به جواب سریع میرسونه شاید اصولی نباشه اما کار راه اندازه.از دوستان میخوام که لطف کننو اصولی راهنمایی کنند اما چون احتمالا درگیر این کار هستید میتونید در آخر بعد از تهیه فایل xml از این کد استفاده کنید:چشمک:
'................................xml........این جا بهش مسیر برای ذخیره میدیم................................
datatable.WriteXml("C:Desktop\900\1.xml")
Dim fileData As String
fileData = File.ReadAllText("C:Desktop\900\1.xml")
Dim a As String = "<?xml version=""1.0""" + " standalone=" + """yes""" + "?>"
fileData = fileData.Replace(a, "")
fileData = fileData.Replace("<DocumentElement>", "")
fileData = fileData.Replace("</DocumentElement>", "")
fileData = "<?xml version=""1.0""" + " standalone=" + """yes""" + "?>" + vbCrLf + "<DsSnd xmlns=" + """http://tempuri.org/DsSnd.xsd""" + ">" & fileData & "</DsSnd>"
File.WriteAllText("C:Desktop\900\1.xml", fileData)
نقل قول: ارسال اطلاعات به فایل xml
دوست عزیز جناب hamidrezax1
نمی دونم چطور تشکر کنم خیلی عالی بود کارم راه افتاد خیلی بهش نیاز داشتم خودم اصلا با فایل ها تا حالا کار نکرده بودم خدا خیرت بده قربون معرفتت که وقت گذاشتی:قلب::قلب::قلب:
نقل قول: ارسال اطلاعات به فایل xml
سلام دوست عزیز
اگه بخوایم ابتدا اطلاعات رو بفرستیم رو دیتاگرید ویو و بعد ارسال بشه رو فایل و همچنین بتونیم ردیف خاصی رو حذف یا ویرایش کنیم امکانش هست؟؟؟
نقل قول: ارسال اطلاعات به فایل xml
سلام دوست عزیز میشه با مثال سوالتون توضیح بدین
نقل قول: ارسال اطلاعات به فایل xml
نقل قول:
نوشته شده توسط
hamidrezax1
سلام دوست عزیز میشه با مثال سوالتون توضیح بدین
سلام دوست عزیزنرم افزاری که من دارم مینویسم از چند جای مختلف مورد استفاده قرار می گیره و همه اطلاعات در یک دیتابیس که روی سرور هست قرار می گیره حالا من می خوام تو یه بازه زمانی اطلاعات رو لود کنم داخل یه دیتاگرید ویو و از اونجا بفرستم رو فایل xml
حالا شما نطرتون چیه؟
بهترین راه حل چیه؟
ممنونم
نقل قول: ارسال اطلاعات به فایل xml
سلام دوست عزیز ببخشید که دیر جواب دادم.اول از همه بهتره اطلاعات رو داخل یک دیتاتیبل بفرستین چون قبل و یا بعد از ورود اطلاعات شما به این دیتاتیبل دسترسی دارین.قبلش میتونید با شرط هایی که مد نظرتون هست از ورود اطلاعات جلوگیری کنید و بعدش هم میتونید اون ردیف مورد نظر رو توی دیتاتیبل ویرایش و یا حذف کنید.آخر کار هم همون خروجی که مد نظرتون هست رو دریافت کنید
موفق باشید