# مباحث متفرقه برنامه نویسی > XML و کاربرد آن > مبتدی: تبديل بانك اطلاعاتي sql2000به XMLوبرعكس:تبديل XMLيه SQLدر vb.net

## mahbobehshab

سلام
اين سوال رو به بار ديگه مطرح كردم و لي حذفش كردند.توروخدا به من كمك كنيدخيلي ضروريه.ميخوام جدولهاي ديتابيس رو به XMLتبديل كنم وبرعكس:فايلهاي xmlرو به SQLارسال كنم. :گریه:

----------


## mtorabi

من تو پست حذف شده هم جواب گذاشته بودم ... توی همین سایت بگردی نمونه کد های زیادی هست... فکر کنم به همین خاطر تاپیک تکراری رو حذف کردن

برای مثال این تاپیک رو ببین خواندن از XML رو در این تاپیک می تونی ببینی:
https://barnamenevis.org/showthread.p...8%AF%D9%86-xml

تو تاپیک ها بگردی راهنما های کامل و جامع دیگه ای رو هم می تونی پیدا کنی

----------


## mahbobehshab

> من تو پست حذف شده هم جواب گذاشته بودم ... توی همین سایت بگردی نمونه کد های زیادی هست... فکر کنم به همین خاطر تاپیک تکراری رو حذف کردن
> 
> برای مثال این تاپیک رو ببین خواندن از XML رو در این تاپیک می تونی ببینی:
> https://barnamenevis.org/showthread.p...8%AF%D9%86-xml
> 
> تو تاپیک ها بگردی راهنما های کامل و جامع دیگه ای رو هم می تونی پیدا کنی



ممنون دوست عزيزولي من دنبال تبديل SQL به XMLهم هستم اگه ميتوني كمكم كن.

----------


## mahbobehshab

> ممنون دوست عزيزولي من دنبال تبديل SQL به XMLهم هستم اگه ميتوني كمكم كن.



دوست عزيز پاسخي كه شما قبلا داده بوديد واسه تبديل SQL به xml در سي شارپ بود ولي من در وي بي دات نت ميخوام.

----------


## mtorabi

فکر کردم هیج چیز بیشتر از یک نمونه پروژه برات مفید نباشه

فایل ها خیلی ساده اند و با VS2008 نوشته شده
تنها دو دکمه و یک گرید داره... دکمه نوشتن دیتاست رو در یک فایل xml موجود در پوشه bin می نویسه و دکمه خواندن همون فایل رو می خونه و یک پیغام نشون می ده


موفق باشی

----------


## mahbobehshab

> فکر کردم هیج چیز بیشتر از یک نمونه پروژه برات مفید نباشه
> 
> فایل ها خیلی ساده اند و با VS2008 نوشته شده
> تنها دو دکمه و یک گرید داره... دکمه نوشتن دیتاست رو در یک فایل xml موجود در پوشه bin می نویسه و دکمه خواندن همون فایل رو می خونه و یک پیغام نشون می ده
> 
> 
> موفق باشی


ممنونم.الان فایل رو گرفتم میخوام برم امتحانش کنم.امیدوارم همونی باشه که من میخوام.اگه همه ی انسانها مثل ما باشند آدم غمی نداره.

----------


## mahbobehshab

> ممنونم.الان فایل رو گرفتم میخوام برم امتحانش کنم.امیدوارم همونی باشه که من میخوام.اگه همه ی انسانها مثل ما باشند آدم غمی نداره.



راستی دوست عزیز من میخوام هرجدولی از دیتابیس رو انتخاب کردم به XML تبدیل کنه نه کل دیتابیس رو.آیا میشه تو این برنامه ای که دادید این کارروکرد.چه جوری؟

----------


## mahbobehshab

> راستی دوست عزیز من میخوام هرجدولی از دیتابیس رو انتخاب کردم به XML تبدیل کنه نه کل دیتابیس رو.آیا میشه تو این برنامه ای که دادید این کارروکرد.چه جوری؟


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

----------


## mehran_sh_t

سلام
شما روی هر جدولت Reader میتونی بگیری دیگه؟ (SqlDataReader)
من یه کدی نوشتم که از Reader اطلاعات رو میگیره و به Xml تبدیل میکنه. به زبان سی شارپه، ولی اگه کارتون گیره به VB تبدیلش می کنم.

----------


## mahbobehshab

> سلام
> شما روی هر جدولت Reader میتونی بگیری دیگه؟ (SqlDataReader)
> من یه کدی نوشتم که از Reader اطلاعات رو میگیره و به Xml تبدیل میکنه. به زبان سی شارپه، ولی اگه کارتون گیره به VB تبدیلش می کنم.


ممنون میشم اگه بتونی کدتو به زبان وی بی دات نت برام بذاری کارم خیلی گیره بلد هم نیستم چیکار کنم .اگه میشه زودتر چون ترم تموم شد و من باید پروژه مو تحویل بدم . مرسی.

----------


## mehran_sh_t

سلام
من خیلی وقته VB کار نکردم، سعی کردم تا جایی که امکان داره تبدیلش کنم. ولی مثلا بلد نبودم چطور از تابع خروجی بگیرم، در واقع تابع اصلی باید یک xmlDocument به عنوان خروجی برگردونه که هر کاری خواستین باهاش بکنید (saveو ...)
باقی زحمت ها باشه با خودتون.
راستی تو VB آرایه رو با () نشون می دن دیگه؟

----------


## mahbobehshab

> سلام
> من خیلی وقته VB کار نکردم، سعی کردم تا جایی که امکان داره تبدیلش کنم. ولی مثلا بلد نبودم چطور از تابع خروجی بگیرم، در واقع تابع اصلی باید یک xmlDocument به عنوان خروجی برگردونه که هر کاری خواستین باهاش بکنید (saveو ...)
> باقی زحمت ها باشه با خودتون.
> راستی تو VB آرایه رو با () نشون می دن دیگه؟


این برنامه ای که به من دادید سند xml رو دوباره sql برمی گردونه یا نه؟اگه بااین مورد کارکردی لطفا کمکم کن.اگه به زبون های دیگه هم داری و نمی تونی تبدیلش کنی بازم برام بفرست.حالا یه جوری تبدیلش می کنم.از لطفت ممنون میشم.

----------


## mehran_sh_t

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

----------


## mahbobehshab

> خودم دنبالشم که همچین کاری رو هم انجام بدم. اگه تونستم به شما هم میگم.
> یه کم سخت تر از  این حالته.


اگه بتونی هرچه زودتر برام بفرستی که خیلی شرمنده م میکنی .چون میدونی من فوقش واسه تحویل پروژه م تا 20 اسفند وقت دارم.لطفا کمکم کن. :افسرده:

----------


## mehdi.mousavi

> سلام اين سوال رو به بار ديگه مطرح كردم و لي حذفش كردند.توروخدا به من كمك كنيدخيلي ضروريه.ميخوام جدولهاي ديتابيس رو به XMLتبديل كنم وبرعكس:فايلهاي xmlرو به SQLارسال كنم.


سلام.
من نمیدونم چرا جستجو نمی کنید، من خودم حداقل یکی دو بار به چنین سوالی پاسخ داده بودم. ببینید. برای تبدیل اطلاعات هر جدولی به XML، کافیه بدین شکل عمل کنید:

SELECT * FROM Person.Contact FOR XML AUTOبا فرض به اینکه Query ی فوق رو روی بانک AdventureWorks بزنیم، مقدار جدول Person.Contact به ما بصورت XML برگردونده میشه، که بخشی از اون عبارت است از:

<Person.Contact ContactID="1" NameStyle="0" Title="Mr." FirstName="Gustavo" LastName="Achong" EmailAddress="gustavo0@adventure-works.com" EmailPromotion="2" Phone="398-555-0132" PasswordHash="GylyRwiKnyNPKbC1r4FSqA5YN9shIgsNik5A  DyqStZc=" PasswordSalt="TVGHbhY=" rowguid="D4C132D3-FCB5-4231-9DD5-888A54BEC693" ModifiedDate="2005-05-16T16:33:33.060">
  <AdditionalContactInfo>
    <AdditionalContactInfo xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo" xmlns:crm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactRecord" xmlns:act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes">
      <act:telephoneNumber>
        <act:number>425-555-1112</act:number>
        <act:SpecialInstructions>Call only after 5:00 p.m.</act:SpecialInstructions>
      </act:telephoneNumber>Note that the customer has a secondary home address.<act:homePostalAddress><act:Street>123 Oak</act:Street><act:City>Seattle</act:City><act:StateProvince>WA</act:StateProvince><act:PostalCode>98001</act:PostalCode><act:CountryRegion>USA</act:CountryRegion><act:SpecialInstructions>If correspondence to the primary address fails, try this one.</act:SpecialInstructions></act:homePostalAddress>Customer provided additional email address.<act:eMail><act:eMailAddress>customer1@sam  ple.com</act:eMailAddress><act:SpecialInstructions>For urgent issues, do not send e-mail. Instead use this emergency contact phone<act:telephoneNumber><act:number>425-555-1111</act:number></act:telephoneNumber>.</act:SpecialInstructions></act:eMail><crm:ContactRecord date="2001-06-02Z">This customer is interested in purchasing high-end bicycles for his family. The customer contacted Michael in sales.</crm:ContactRecord></AdditionalContactInfo>
  </AdditionalContactInfo>
</Person.Contact>
<Person.Contact ContactID="2" NameStyle="0" Title="Ms." FirstName="Catherine" MiddleName="R." LastName="Abel" EmailAddress="catherine0@adventure-works.com" EmailPromotion="1" Phone="747-555-0171" PasswordHash="zh3goJUbYsPv92k4bVZuJtlLHwuvpQtu6uNc  jkKSdF8=" PasswordSalt="rpyd5Tw=" rowguid="D54E0552-C226-4C22-AF3B-762CA854CDD3" ModifiedDate="2005-05-16T16:33:33.077">
  <AdditionalContactInfo>
    <AdditionalContactInfo xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo" xmlns:crm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactRecord" xmlns:act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes">These are additional phone and pager numbers for the customer.<act:telephoneNumber><act:number>206-555-2222</act:number><act:SpecialInstructions>On weekends, contact the manager at this number.</act:SpecialInstructions></act:telephoneNumber><act:telephoneNumber><act:numb  er>206-555-1234</act:number></act:telephoneNumber><act:pager><act:number>206-555-1244</act:number><act:SpecialInstructions>Do not page between 9:00 a.m. and 5:00 p.m.</act:SpecialInstructions></act:pager>Customer provided this additional home address.<act:homePostalAddress><act:Street>P.O Box 5</act:Street><act:City>Edmonds</act:City><act:StateProvince>WA</act:StateProvince><act:PostalCode>98431</act:PostalCode><act:CountryRegion>USA</act:CountryRegion><act:SpecialInstructions>This is an alternative address for billing only.</act:SpecialInstructions></act:homePostalAddress><act:eMail><act:eMailAddress  >Joe@sample.com</act:eMailAddress><act:SpecialInstructions>Do not send e-mail for urgent issues. Use telephone instead.</act:SpecialInstructions></act:eMail><crm:ContactRecord date="2001-07-02Z">Sales contacted this customer to explain new pricing.</crm:ContactRecord></AdditionalContactInfo>
  </AdditionalContactInfo>
</Person.Contact>
همونطوریکه می بینید، به سادگی اطلاعات جدول مزبور به XML تبدیل شدش. حالا برای برگردوندن این اطلاعات به جدول (در حقیقت ذخیره اطلاعات XML در بانک)، کافیه تا با استفاده از OPENXML فیلدهای مزبور رو در Query خودم آدرس کنم و به هدفم برسم. تمام این مطالب + کلی مطلب دیگه در این خصوص رو می تونید در این مقاله مطالعه کنید.

موفق باشید.

*پاورقی:* طبیعتا استفاده از این روش دیگه به زبان برنامه نویسی شما ارتباطی پیدا نمیکنه، چون از تواناییهای SQLServer برای تولید و پردازش XML استفاده کرده اید.

----------


## mahbobehshab

> سلام.
> من نمیدونم چرا جستجو نمی کنید، من خودم حداقل یکی دو بار به چنین سوالی پاسخ داده بودم. ببینید. برای تبدیل اطلاعات هر جدولی به XML، کافیه بدین شکل عمل کنید:
> 
> SELECT * FROM Person.Contact FOR XML AUTOبا فرض به اینکه Query ی فوق رو روی بانک AdventureWorks بزنیم، مقدار جدول Person.Contact به ما بصورت XML برگردونده میشه، که بخشی از اون عبارت است از:
> 
> <Person.Contact ContactID="1" NameStyle="0" Title="Mr." FirstName="Gustavo" LastName="Achong" EmailAddress="gustavo0@adventure-works.com" EmailPromotion="2" Phone="398-555-0132" PasswordHash="GylyRwiKnyNPKbC1r4FSqA5YN9shIgsNik5A  DyqStZc=" PasswordSalt="TVGHbhY=" rowguid="D4C132D3-FCB5-4231-9DD5-888A54BEC693" ModifiedDate="2005-05-16T16:33:33.060">
>   <AdditionalContactInfo>
>     <AdditionalContactInfo xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo" xmlns:crm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactRecord" xmlns:act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes">
>       <act:telephoneNumber>
> ...


ازلطفتون ممنون.اما اون لینکی که برام گذاشتید همش به زبان انگلیسی بود و من هم زبانم زیاد خوب نیست و چیزی از تبدیل XML به SQL نصیبم نشد.راستی کدی که برای تبدیل sql به xml گذاشتید واسه ی اینکه بخوام فایل xml رو توی یه درایوی ذخیره کنم باید چیکارکنم چون که من میخوام بعد از تبدیلش اونو فشرده کنم و همچنین بتونم بعدا اون فایل رو دوباره به sql برگردونم .حالا باید چیکارکنم؟ لطفا اگه میشه برای این تبدیلها یا کدشو بذارید یا اینکه اگه نمونه ای از این برنامه نوشتید برام بذارید.چون خیلی لازمه.اجرتون با خدا.

----------


## mahbobehshab

> سلام
> من خیلی وقته VB کار نکردم، سعی کردم تا جایی که امکان داره تبدیلش کنم. ولی مثلا بلد نبودم چطور از تابع خروجی بگیرم، در واقع تابع اصلی باید یک xmlDocument به عنوان خروجی برگردونه که هر کاری خواستین باهاش بکنید (saveو ...)
> باقی زحمت ها باشه با خودتون.
> راستی تو VB آرایه رو با () نشون می دن دیگه؟


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

----------


## mehran_sh_t

اولا سی شارپ هم جزئی از دات نته!!!
بعدش هم، من زمانی که تصمیم به این کار گرفتم، هیچ چیز از XML بلد نبودم، فقط دیده بودم. ولی خیلی کمتر از یک ماه وقت برد.
یه کم درست جستجو کنید خیلی چیزا پیدا می کنید. کمتر از دو سه روز حتی!
موفق باشید.

----------


## mahbobehshab

> اولا سی شارپ هم جزئی از دات نته!!!
> بعدش هم، من زمانی که تصمیم به این کار گرفتم، هیچ چیز از XML بلد نبودم، فقط دیده بودم. ولی خیلی کمتر از یک ماه وقت برد.
> یه کم درست جستجو کنید خیلی چیزا پیدا می کنید. کمتر از دو سه روز حتی!
> موفق باشید.


من زیادجستجوکردم ولی چیز بدردبخوری پیدانکردم.چون واسه پروژمه عجله دارم وگرنه اگه وقت داشتم بیشترجستجو میکردم.وقت ندارم.حالا نمیشه شما همون برنامه ای که به سی شارپ نوشتید برام بذارید؟راستی شما تونستی در مورد xml به sql چیزی بدست بیاری؟اگه موفق شدی مارو هم کمک کن.اگر هم به سی شارپ بود موردی نداره.ممنون.

----------


## mahbobehshab

> من زیادجستجوکردم ولی چیز بدردبخوری پیدانکردم.چون واسه پروژمه عجله دارم وگرنه اگه وقت داشتم بیشترجستجو میکردم.وقت ندارم.حالا نمیشه شما همون برنامه ای که به سی شارپ نوشتید برام بذارید؟راستی شما تونستی در مورد xml به sql چیزی بدست بیاری؟اگه موفق شدی مارو هم کمک کن.اگر هم به سی شارپ بود موردی نداره.ممنون.


یعنی هیچکس تواین تالار نیست که بدونه چه جوری جدولامو به xml  وبرعکس تبدیل کنم.بابا یه بار ما یه چیز خواستیما.مردم ازبس جستجو کردم.

----------


## mahbobehshab

> یعنی هیچکس تواین تالار نیست که بدونه چه جوری جدولامو به xml  وبرعکس تبدیل کنم.بابا یه بار ما یه چیز خواستیما.مردم ازبس جستجو کردم.


آقاي mehdi.mousavi سلام.
خواستم بگم اگه ميشه شما كه در مورد تبديل جدولهاي sql به xml وبرعكسش مهارت داري خوب يه نمونه برنامه هم واسه ما بذار و مارو راحت كن.از اون مقاله اي كه واسم گذاشتيد چيزي دستگيرم نشده كدهاشو كه تو دات نت استفاده مي كنم خطا ميگيره نمي دونم چيكار كنم.كمك كنين جاي دوري نمي ره.خيلي ضروريه.ممنون.

----------


## mahbobehshab

> سلام
> من خیلی وقته VB کار نکردم، سعی کردم تا جایی که امکان داره تبدیلش کنم. ولی مثلا بلد نبودم چطور از تابع خروجی بگیرم، در واقع تابع اصلی باید یک xmlDocument به عنوان خروجی برگردونه که هر کاری خواستین باهاش بکنید (saveو ...)
> باقی زحمت ها باشه با خودتون.
> راستی تو VB آرایه رو با () نشون می دن دیگه؟


سلام 
ببخشید باز مزاحمتون شدم.خواستم بگم من یه سایتی پیدا کردم که کدهای سی شارپو به وی بی تبدیل می کنه ازتون می خوام اگه میشه اون برنامه ای که به زبان سی شارپ نوشتید برام بذارید تا تبدیلش کنم.آخه هنوز نتونستم واسه ی این دو مشکلم راه حلی پیدا کنم.لطفا کمکم کنید. :کف کرده!:

----------

