Samsam2010
سه شنبه 27 دی 1390, 23:30 عصر
با سلام
این آموزش رو به درخواست دوست خوبم جناب M.KH-SH قرار دادم !
(حقیقتش خودم تا به امروز با xml کار نکرده بودم اگه کم و کسری داشت به بزرگی خودتون ببخشید)
در پایا ن دو سورس کار با xml رو میتونید دانلود کنید !
دوستان عزیز میخوایم کار با Xml رو در وی بی دات نت با هم کار کنیم !
این که xml چیه ؟ و به چه دردی میخوره ! براتون بگم xml یک زبانه نشانه گزاریه (زیاد خودتون رو درگیرش نکنید !) مثلا در xml همه نوشته های شما در تگ های <> قرار میگیرند ! خب خوبی این روش اینه که همه چیز دسته بندی میشه ! مثل کشو لباس ها تون در دلاور !
دلاور 4 الی 6 کشو داره که هر کشو متعلق به یک شخص برای نگهداری لوازم یا لباس های افراده ! مثلا کشو دوم لباس های شماست و کشو سوم لباس های داداشتونه پس لباس های شما با لبلس های داداشتون قاطی نمیشه!دلیلش هم واضحه چون هر کدوم توی یک طبقه است!
امیدوارم کاربرد تگ رو در محاوره خوب رسونده باشم !
توضیحات آکادمیک و علمی را برای تفهیم بهتر جستجو نمایید !
چطور با یک سند xml در دات نت کار کنیم ؟
خب پاسخ به این سوال رو من تا حدودی میدونم ! شما هر جور دوست دارید با xml کار کنید این روشی که من انتخاب کردم راحت ترین روشه !
چگونه یک فایل xml بسازیم !
خوشبختانه برادران مایکروسافتی ما برای کار کردن با سند xml تدابیر خاصی اندیشیده اند !
برای ساخت سند xml ، کافی است کد زیر را اجرا کنید :
ابتدا یک متغییر عمومی :
Private filePath As String = "C:\user.xml" 'xml filepath
Private Function CreateEmptyTable(ByVal TableName As String, ByVal ParamArray ColumnNames() As String) As Boolean
Dim writer As New XmlTextWriter(filePath, System.Text.Encoding.UTF8)
Try
writer.WriteStartDocument(True)
writer.Formatting = Formatting.Indented
writer.Indentation = 2
writer.WriteStartElement("Table")
writer.WriteStartElement(TableName)
For Each ColumnName As String In ColumnNames
writer.WriteStartElement(ColumnName)
writer.WriteString(String.Empty)
writer.WriteEndElement()
Next
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
Catch ex As Exception
MsgBox("Cannot create new table.")
Return False
End Try
Return True
End Function
کد بالا چه کاری انجام میدهد ؟
کد بالا یک تابع است که سر راست یک دیتاگرید ویو را تبدیل به یک سند xml خوشکل میکند !
ورودی ها :
TableName = نام تگ داخلی
()ColumnNames = تگ های داخلی
بعد از معرفی ورودی های تابع بریم سراغ کارش !
یک فایل xml خالی میسازد !
با دو تگ داخلی
نام ریشه را table میگذارد و نام تگ های داخلی را از آرایه table name میگیرد !
<Table> ' تگ ریشه
<dari> ' تگ اصلی
<u>کوروش</u> 'تگ اول
<p> 123</p>'تگ دوم
</dari>
<dari>
<u> داریوش</u>
<p>456 </p>
</dari>
</Table>
خوب فعلا تایع بالا را در برنامه تون کپی کنید تا بعد!
خوب تو فرم لود هر بار ما باید چک کنیم که فایل xml ما با این مشخصات هست یا نه
تگر هست که هیچ و گرنه زحمت بکشیم یکی بسازیم
'if file doesn't exist, create the file with its default xml table
If Not File.Exists(filePath) Then
If Not Me.CreateEmptyTable("User", "user_name", "user_password") Then End
End If
بعد از کد بالا بریم سراغ فراخوانی فایلی که ساختیم در دیتا گرید ویو !
Dim xmlFile As XmlReader
Dim ds As New DataSet
'fill dataset with selected xml table
xmlFile = XmlReader.Create(filePath, New XmlReaderSettings())
ds.ReadXml(xmlFile)
xmlFile.Close()
'init datagridview
Me.DataGridView1.DataSource = ds.Tables(0)
خوب در کد بالا من یک دیتاست تعریف کردم با یک xmlreader برای خوندن فایل
به نحوی که ابتدا فایل xml رو میخونم بعد میام با dataset اون رو لود میکنم داخل dataset بعد
dataset
رو منقل میکنم به datagridview به همین راحتی !
خوب بعد از اجرا کد بالا شما یک گرید خالی میبینید ! تعجب نکنید بجاش بشینید گرید رو پر کنید !
بعد از این که گرید رو پر کردید تشریف بیارید باید گرید رو ذخیره کنیم ! جالب اینجاست که ذخیره کردنش
راحت تر از لود کردنش!!!
Dim dt As New DataTable
Me.DataGridView1.EndEdit()
dt = Me.DataGridView1.DataSource
Try
dt.WriteXml(filePath)
MsgBox("Data has been saved.")
Catch ex As Exception
MsgBox("Data cannot be saved.")
End Try
خوب کد بالا برای ذخیره کردن گرید ویو در فایله !
یک datatable تعریف میکیم ! گرید رو میریزیم در datatable بعد با متد
WriteXml
گرید رو در فایلی که میخوایم ذخیره میکنیم !
خوب دوستان فایل xml رو توی یک دیتا گرید خوندیم و ذخیره کردیم !
جالبه که وقتی شما در دیتا گرید فایل رو باز میکنید میتونید ویرایشش کنید و دوباره ذخیره اش کنید
میتونید بهش اضافه کنید میتونید حذف کنید و ...
همین کدهایی که آموزش دادم این سورسشه ! میتونید دانلود کنید و استفاده کنید.
81012
این هم یک سورس دیگه + تصویر
81013
http://www.mediafire.com/?h5kaz48m2w24j1p
این آموزش رو به درخواست دوست خوبم جناب M.KH-SH قرار دادم !
(حقیقتش خودم تا به امروز با xml کار نکرده بودم اگه کم و کسری داشت به بزرگی خودتون ببخشید)
در پایا ن دو سورس کار با xml رو میتونید دانلود کنید !
دوستان عزیز میخوایم کار با Xml رو در وی بی دات نت با هم کار کنیم !
این که xml چیه ؟ و به چه دردی میخوره ! براتون بگم xml یک زبانه نشانه گزاریه (زیاد خودتون رو درگیرش نکنید !) مثلا در xml همه نوشته های شما در تگ های <> قرار میگیرند ! خب خوبی این روش اینه که همه چیز دسته بندی میشه ! مثل کشو لباس ها تون در دلاور !
دلاور 4 الی 6 کشو داره که هر کشو متعلق به یک شخص برای نگهداری لوازم یا لباس های افراده ! مثلا کشو دوم لباس های شماست و کشو سوم لباس های داداشتونه پس لباس های شما با لبلس های داداشتون قاطی نمیشه!دلیلش هم واضحه چون هر کدوم توی یک طبقه است!
امیدوارم کاربرد تگ رو در محاوره خوب رسونده باشم !
توضیحات آکادمیک و علمی را برای تفهیم بهتر جستجو نمایید !
چطور با یک سند xml در دات نت کار کنیم ؟
خب پاسخ به این سوال رو من تا حدودی میدونم ! شما هر جور دوست دارید با xml کار کنید این روشی که من انتخاب کردم راحت ترین روشه !
چگونه یک فایل xml بسازیم !
خوشبختانه برادران مایکروسافتی ما برای کار کردن با سند xml تدابیر خاصی اندیشیده اند !
برای ساخت سند xml ، کافی است کد زیر را اجرا کنید :
ابتدا یک متغییر عمومی :
Private filePath As String = "C:\user.xml" 'xml filepath
Private Function CreateEmptyTable(ByVal TableName As String, ByVal ParamArray ColumnNames() As String) As Boolean
Dim writer As New XmlTextWriter(filePath, System.Text.Encoding.UTF8)
Try
writer.WriteStartDocument(True)
writer.Formatting = Formatting.Indented
writer.Indentation = 2
writer.WriteStartElement("Table")
writer.WriteStartElement(TableName)
For Each ColumnName As String In ColumnNames
writer.WriteStartElement(ColumnName)
writer.WriteString(String.Empty)
writer.WriteEndElement()
Next
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
Catch ex As Exception
MsgBox("Cannot create new table.")
Return False
End Try
Return True
End Function
کد بالا چه کاری انجام میدهد ؟
کد بالا یک تابع است که سر راست یک دیتاگرید ویو را تبدیل به یک سند xml خوشکل میکند !
ورودی ها :
TableName = نام تگ داخلی
()ColumnNames = تگ های داخلی
بعد از معرفی ورودی های تابع بریم سراغ کارش !
یک فایل xml خالی میسازد !
با دو تگ داخلی
نام ریشه را table میگذارد و نام تگ های داخلی را از آرایه table name میگیرد !
<Table> ' تگ ریشه
<dari> ' تگ اصلی
<u>کوروش</u> 'تگ اول
<p> 123</p>'تگ دوم
</dari>
<dari>
<u> داریوش</u>
<p>456 </p>
</dari>
</Table>
خوب فعلا تایع بالا را در برنامه تون کپی کنید تا بعد!
خوب تو فرم لود هر بار ما باید چک کنیم که فایل xml ما با این مشخصات هست یا نه
تگر هست که هیچ و گرنه زحمت بکشیم یکی بسازیم
'if file doesn't exist, create the file with its default xml table
If Not File.Exists(filePath) Then
If Not Me.CreateEmptyTable("User", "user_name", "user_password") Then End
End If
بعد از کد بالا بریم سراغ فراخوانی فایلی که ساختیم در دیتا گرید ویو !
Dim xmlFile As XmlReader
Dim ds As New DataSet
'fill dataset with selected xml table
xmlFile = XmlReader.Create(filePath, New XmlReaderSettings())
ds.ReadXml(xmlFile)
xmlFile.Close()
'init datagridview
Me.DataGridView1.DataSource = ds.Tables(0)
خوب در کد بالا من یک دیتاست تعریف کردم با یک xmlreader برای خوندن فایل
به نحوی که ابتدا فایل xml رو میخونم بعد میام با dataset اون رو لود میکنم داخل dataset بعد
dataset
رو منقل میکنم به datagridview به همین راحتی !
خوب بعد از اجرا کد بالا شما یک گرید خالی میبینید ! تعجب نکنید بجاش بشینید گرید رو پر کنید !
بعد از این که گرید رو پر کردید تشریف بیارید باید گرید رو ذخیره کنیم ! جالب اینجاست که ذخیره کردنش
راحت تر از لود کردنش!!!
Dim dt As New DataTable
Me.DataGridView1.EndEdit()
dt = Me.DataGridView1.DataSource
Try
dt.WriteXml(filePath)
MsgBox("Data has been saved.")
Catch ex As Exception
MsgBox("Data cannot be saved.")
End Try
خوب کد بالا برای ذخیره کردن گرید ویو در فایله !
یک datatable تعریف میکیم ! گرید رو میریزیم در datatable بعد با متد
WriteXml
گرید رو در فایلی که میخوایم ذخیره میکنیم !
خوب دوستان فایل xml رو توی یک دیتا گرید خوندیم و ذخیره کردیم !
جالبه که وقتی شما در دیتا گرید فایل رو باز میکنید میتونید ویرایشش کنید و دوباره ذخیره اش کنید
میتونید بهش اضافه کنید میتونید حذف کنید و ...
همین کدهایی که آموزش دادم این سورسشه ! میتونید دانلود کنید و استفاده کنید.
81012
این هم یک سورس دیگه + تصویر
81013
http://www.mediafire.com/?h5kaz48m2w24j1p