تعداد کلیک:
3039
تعداد نمایش:
65563
گزارش لینک خراب {فقط با یک کلیک}
تبليغات x دات نت آموزش سی شارپ و ویژوال بیسیک دات نت آموزش سی شارپ و ویژوال بیسیک دات نت آموزش سی شارپ و ویژوال بیسیک درباره وبلاگ دات نت آموزش سی شارپ و ویژوال بیسیک پیوندهای روزانه شهید آوینی تمام پیوندها پیوندها mydotnet طراح قالب powered by blogfa com وب سرويس چيست کسانی که با صنعت it آشنايی دارند حتما نام وب سرويس را شنيده اند برای مثال بيش از ۶۶ درصد کسانی که در نظر سنجی مجله infoworld شرکت کرده بودند بر اين توافق داشتند که وب سرويس ها مدل تجاری بعدی اينترنت خواهند بود به علاوه گروه گارتنر پيش بينی کرده است که وب سرويس ها کارآيی پروژه های it را تا ۳۰ در صد بالا می برد اما وب سرويس چيست و چگونه شکل تجارت را در اينترنت تغيير خواهد داد برای ساده کردن پردازش های تجاری برنامه های غيرمتمرکز enterprise بايد با يکديگر ارتباط داشته باشند و از داده های اشتراکی يکديگر استفاده کنند قبلا اين کار بوسيله ابداع استانداردهای خصوصی و فرمت داده ها به شکل مورد نياز هر برنامه انجام می شد اما دنيای وب و xml تکنولوژی آزاد برای انتقال ديتا انتقال اطلاعات بين سيستم ها را افزايش داد وب سرويس ها نرم افزارهايی هستند که از xml برای انتقال اطلاعات بين نرم افزارهای ديگر از طريق پروتکل های معمول اينترنتی استفاده می کنند به شکل ساده يک وب سرويس از طريق وب اعمالی را انجام می دهد توابع يا سابروتين ها و نتايج را به برنامه ديگری می فرستد اين يعنی برنامه ای که در يک کامپيوتر در حال اجراست اطلاعاتی را به کامپيوترديگری می فرستد و از آن درخواست جواب می کند برنامه ای که در آن کامپيوتر دوم است کارهای خواسته شده را انجام می دهد و نتيجه را بر روی ساختارهای اينترنتی به برنامه اول برمی گرداند وب سرويس ها می توانند از پروتکل های زيادی در اينترنت استفاده کنند اما بيشتر از http که مهم ترين آنهاست استفاده می شود وب سرويس هر نوع کاری می تواند انجام دهد برای مثال در يک برنامه می تواند آخرين عنوان های اخبار را از وب سرويس associated press بگيرد يا يک برنامه مالی می تواند آخرين اخبار و اطلاعات بورس را از طريق وب سرويس بگيرد کاری که وب سرويس انجام می دهد می تواند به سادگی ضرب دو عدد يا به پيچيدگی انجام کليه امور مشترکين يک شرکت باشد وب سرويس دارای خواصی است که آن را از ديگر تکنولوژی ها و مدل های کامپيوتری جدا می کند paul flessner نايب رييس مايکروسافت در dot net enterprise server چندين مشخصه برای وب سرويس در يکی از نوشته هايش ذکر کرده است اول اينکه وب سرويس ها قابل برنامه ريزی هستند يک وب سرويس کاری که می کند را در خود مخفی نگه می دارد وقتی برنامه ای به آن اطلاعات داد وب سرويس آن را پردازش می کند و در جواب آن اطلاعاتی را به برنامه اصلی بر می گرداند دوم وب سرويس ها بر پايه xml بنا نهاده شده اند xml و xml های مبتنی بر soap يا simple object access protocol تکنولوژی هايی هستند که به وب سرويس ها اين امکان را می دهد که با ديگر برنامه ها ارتباط داشته باشد حتی اگر آن برنامه ها در زبانهای مختلف نوشته شده و بر روی سيستم عامل های مختلفی در حال اجرا باشند همچين وب سرويس ها خود توصيف هستند به اين معنی که کاری را که انجام می دهند و نحوه استفاده از خودشان را توضيح می دهند اين توضيحات به طور کلی در wsdl يا web services description language نوشته می شود wsdl يک استاندارد بر مبنای xml است به علاوه وب سرويس ها قابل شناسايی هستند به اين معنی که برنامه نويس می تواند به دنبال وب سرويس مورد علاقه در دايرکتوری هايی مثل uddi يا universal description discovery and integration جستجو کند uddi يکی ديگر از استاندارد های وب سرويس است نکات تکنولوژی وب سرويس همانطور که در ابتدا توضيح داده شد يکی از دلايل اينکه وب سرويس از ديگر تکنولوژی های موجود مجزا شده است استفاده از xml و بعضی استاندارد های تکنيکی ديگر مانند soap wsdl و uddi است اين تکنولوژی ها زمينه ارتباط بين برنامه ها را ايجاد می کنند به شکلی که مستقل از زبان برنامه نويسی سيستم عامل و سخت افزار است soap يک مکانيزم ارتباطی را بين نرم افزار و وب سرويس ايجاد می کند wsdl يک روش يکتا برای توصيف وب سرويس ايجاد می کند و uddi يک دايرکتوری قابل جستجو برای وب سرويس می سازد وقتی اينها با هم در يک جا جمع می شوند اين تکنولوژی ها به برنامه نويس اجازه می دهد که برنامه های خود را به عنوان سرويس آماده کرده و بر روی اينترنت قرار دهد xml يا extensible markup language xml يک تکنولوژی است که به شکل گسترده از آن پشتيبانی می شود همچنين اين تکنولوژی open است به اين معنی که متعلق به شرکت خاصی نيست اولين بار در کنسرسيوم www يا w c در سال ۱۹۹۶ برای ساده کردن انتقال ديتا ايجاد شده است با گسترده شدن استفاده از وب در دهه ۹۰ کم کم محدوديت های html مشخص شد ضعف html در توسعه پذيری قابليت اضافه و کم کردن خواص و ضعف آن در توصيف ديتاهايی که درون خود نگهداری می کند برنامه نويسان را از آن نااميد کرد همچنين مبهم بودن تعاريف آن باعث شد از توسعه يافتن باز بماند در پاسخ به اين اشکالات w c يک سری امکانات را در جهت توسعه html به آن افزود که امکان تغيير ساختار متنهای html مهم ترين آن است اين امکان را css يا cascade style sheet می نامند اين توسعه تنها يک راه موقتی بود بايد يک روش استاندارد شده توسعه پذير و دارای ساختار قوی ايجاد می شد در نتيجه w c استاندارد xml را ساخت xml دارای قدرت و توسعه پذيری sgml يا standard generalized markup language و سادگی که در ارتباط در وب به آن نياز دارد است استقلال اطلاعات يا جدا بودن محتوا از ظاهر يک مشخصه برای xml به حساب می آيد متنهای xml فقط يک ديتا را توصيف می کنند و برنامه ای که xml برای آن قابل درک است بدون توجه به زبان و سيستم عامل قادر است به اطلاعات درون فايل xml هر گونه شکلی که مايل است بدهد متنهای xml حاوی ديتا هستند بدون شکل خاص بنابراين برنامه ای که از آن می خواهد استفاده کند بايد بداند که چگونه می خواهد آن اطلاعات را نمايش دهد بنابراين نحوه نمايش يک فايل xml در يک pc با pda و تلفن همراه می تواند متفاوت باشد وقتی يک برنامه با متن xml مواجه می شود بايد مطمئن باشد که آن متن حاوی ديتای مورد نظر خود است اين اطمينان توسط برنامه هايی با نام xml parser حاصل می شود تجزيه کننده ها دستورات متن xml را بررسی می کنند همچنين آنها به برنامه کمک می کنند تا متن های xml را تفسير کند به صورت اختياری هر متن xml می تواند به متن ديگری اشاره کند که حاوی ساختار فايل xml اصلی باشد به آن متن xml دوم dtd يا document type definition گفته می شود وقتی فايل xml به dtd اشاره می کند برنامه تجزيه کننده فايل اصلی را با dtd بررسی می کند که آيا به همان ساختاری که در dtd توصيف شده شکل گرفته است يا خير اگر يک تجزيه کننده xml بتواند يک متن را به درستی پردازش کند متن xml نيز به شکل صحيحی فرمت شده است وقتی که اکثر نرم افزارها امکانات وبی خود را افزايش دادند اين طور به نظر می رسد که xml به عنوان يک تکنولوژی جهانی برای فرستادن اطلاعات بين برنامه ها انتخاب شود تمامی برنامه هايی که از xml استفاده می کنند قادر خواهند بود که xml همديگر را بفهمند اين سطح بالای تطابق بين برنامه ها باعث می شود که xml يک تکنولوژی مناسب برای وب سرويس باشد چون بدون اينکه احتياج به سيستم عامل و سخت افزار يکسان باشد می تواند اطلاعات را جابجا کند soap يا simple object access protocol soap يکی از عمومی ترين استاندارد هايی است که در وب سرويس ها استفاده می شود طبق شواهد اولين بار توسط developermentor شرکت userland و مايکروسافت در سال ۱۹۹۸ ساخته شده و نسخه اول آن در سال ۱۹۹۹ ارايه شده است آخرين نسخه soap نسخه بود که در دسامبر سال ۲۰۰۱ در w c ارايه شد نسخه نشان دهنده کار زياد بر روی آن و نمايانگر اشتياق زياد صنعت it برای استفاده از soap و وب سرويس است هدف اصلی soap ايجاد روشی جهت فرستادن ديتا بين سيستم هايی است که بر روی شبکه پخش شده اند وقتی يک برنامه شروع به ارتباط با وب سرويس می کند پيغام های soap وسيله ای برای ارتباط و انتقال ديتا بين آن دو هستند يک پيغام soap به وب سرويس فرستاده می شود و يک تابع يا سابروتين را در آن به اجرا در می آورد به اين معنی که اين پيغام از وب سرويس تقاضای انجام کاری را دارد وب سرويس نيز از محتوای پيغام soap استفاده کرده و عمليات خود را آغاز می کند در انتها نيز نتايج را با يک پيغام soap ديگر به برنامه اصلی می فرستد به عنوان يک پروتکل مبتنی بر xml پروتکل soap تشکيل شده از يک سری الگوهای xmlی است اين الگوها شکل پيغام های xml را که بر روی شبکه منتقل می شود را مشخص می کند مانند نوع ديتاها و اطلاعاتی که برای طرف مقابل تفسير کردن متن را آسان کند در اصل soap برای انتقال ديتا بر روی اينترنت و از طريق پروتکل http طراحی شده است ولی از آن در ديگر مدلها مانند lan نيز می توان استفاده کرد وقتی که وب سرويس ها از http استفاده می کنند به راحتی می توانند از firewall عبور کنند يک پيغام soap از سه بخش مهم تشکيل شده است پوشش يا envelope header بدنه يا body قسمت پوشش برای بسته بندی کردن کل پيغام به کار می رود اين بخش محتوای پيغام را توصيف و گيرنده آن را مشخص می کند بخش بعدی پيغام های soap header آن است که يک بخش اختياری می باشد و مطالبی مانند امنيت و مسيريابی را توضيح می دهد بدنه پيغام soap بخشی است که ديتاهای مورد نظر در آن جای می گيرند ديتاها بر مبنای xml هستند و از يک مدل خاص که الگوها schemas آن را توضيح می دهند تبعيت می کنند اين الگو ها به گيرنده کمک می کنند تا متن را به درستی تفسير کند پيغام های soap توسط سرورهای soap گرفته و تفسير می شود تا در نتيجه آن وب سرويس ها فعال شوند و کار خود را انجام دهند برای اينکه از soap در وب سرويس استفاده نکنيم از تعداد زيادی پروتکل بايد استفاده شود برای مثال xml rpc تکنولوژی قديمی تری بود که همين امکانات را ايجاد می کرد به هر حال خيلی از سازندگان بزرگ نرم افزار soap را بر تکنولوژی های ديگر ترجيح دادند دلايل زيادی برای انتخاب soap وجود دارد که خيلی از آنها درباره پروتکل آن است که فراتر از اين متن می باشد سه برتری مهم soap نسبت به تکنولوژی های ديگر عبارتند از قابليت توسعه سادگی و قابليت عملکرد داخلي پيغام های soap معمولا کدهای زيادی ندارند و برای فرستادن و گرفتن آن به نرم افزارهای پيچيده نياز نيست soap اين امکان را به برنامه نويس می دهد تا بنا به نياز خود آن را تغيير دهد در آخر بدليل اينکه soap از xml استفاده می کند می تواند بوسيله http اطلاعات را انتقال بدهد بدون اينکه زبان برنامه نويسی سيستم عامل و سخت افزار برای آن مهم باشد wsdl يا web services description language استاندارد ديگری که نقش اساسی در وب سرويس بازی می کند wsdl است همانطور که قبلا اشاره کرديم يکی از خواص وب سرويس ها توصيف خود آنهاست به اين معنی که وب سرويس دارای اطلاعاتی است که نحوه استفاده از آن را توضيح می دهد اين توضيحات در wsdl نوشته می شود متنی به xml که به برنامه ها می گويد اين وب سرويس چه اطلاعاتی لازم دارد و چه اطلاعاتی را بر می گرداند وقتی که سازندگان نرم افزار برای اولين بار soap و ديگر تکنولوژی های وب سرويس را ساختند دريافتند که برنامه ها قبل از اينکه شروع به استفاده از يک وب سرويس بکنند بايد اطلاعاتی درباره آن را داشته باشند اما هر کدام از آن سازندگان برای خودشان روشی برای ايجاد اين توضيحات ابداع کردند و باعث شد که وب سرويس ها با هم هماهنگ نباشد وقتی ibm و مايکروسافت تصميم گرفتند تا استاندارد های خود را يکسان کنند wsdl بوجود آمد در ماه مارس سال ۲۰۰۱ مايکروسافت ibm و ariba نسخه را به w c ارائه کردند گروهی از w c بر روی اين استاندارد کار کردند و آن را پذيرفتند هم اکنون اين تکنولوژی در دست ساخت است و هنوز کامل نشده ولی هم اکنون اکثر سازندگان وب سرويس از آن استفاده می کنند هر وب سرويسی که بر روی اينترنت قرار می گيرد دارای يک فايل wsdl است که مشخصات مکان و نحوه استفاده از وب سرويس را توضيح می دهد يک فايل wsdl نوع پيغام هايی که وب سرويس می فرستد و می گيرد را توضيح می دهد مانند پارامترهايی که برنامه صدا زننده برای کار با وب سرويس بايد به آن بفرستد در تئوری يک برنامه در وب برای يافتن وب سرويس مورد نظر خود از روی توضيحات wsdl ها جستجو می کند در wsdl اطلاعات مربوط به چگونگی ارتباط با وب سرويس بر روی http يا هر پروتکل ديگر نيز وجود دارد اين مهم است که بدانيم wsdl برای برنامه ها طراحی شده است نه برای خواندن آن توسط انسان شکل فايلهای wsdl پيچيده به نظر می آيد ولی کامپيوترها می توانند آن را بخوانند و تجزيه و تحليل بکند خيلی از نرم افزارهايی که وب سرويس می سازند فايل wsdl مورد نياز وب سرويس را نيز توليد می کنند بنابراين وقتی برنامه نويس وب سرويس خود را ساخت به شکل خودکار wsdl مورد نياز با آن نيز ساخته می شود و احتياجی به آموزش دستورات wsdl برای ساختن و استفاده از وب سرويس نيست uddi يا universal description discovery and integration سومين استاندارد اصلی وب سرويس ها يعنی uddi به شرکتها و برنامه نويسان اجازه می دهد تا وب سرويس های خود را بر روی اينترنت معرفی کنند اين استاندارد در اصل بوسيله مايکروسافت ibm و ariba و پنجاه شرکت بزرگ ديگر ساخته شده است با استفاده از uddi شرکتها می توانند اطلاعات خود را در اختيار شرکت های ديگر قرار بدهند و مدل b b ايجاد کنند همان طور که از نام آن مشخص است شرکت ها می توانند وب سرويس خود را معرفی کنند با وب سرويس ديگران آشنا شوند و از آن در سيستم های خود استفاده کنند اين استاندارد جديدی است و در سال ۲۰۰۰ ساخته شده است و کنسرسيومی از شرکتهای صنعتی در حال کار بر روی آن هستند نسخه دوم uddi در ماه ژوئن سال ۲۰۰۱ ارائه شد و نسخه سوم آن در دست ساخت است uddi يک متن مبتنی بر xml را تعريف می کند که در آن شرکت ها توضيحاتی درباره چگونگی کار وب سرويس شرکتشان و امکانات خود می دهند برای تعريف اين اطلاعات از شکل خاصی که در uddi توضيح داده شده استفاده می شود شرکت ها می توانند اين اطلاعات را در uddi شرکت خود نگهداری کنند و تنها به شرکت های مورد نظرشان اجازه دستيابی به آنها را بدهند يا آنها را در مکان عمومی و در اينترنت قرار دهند بزرگترين و مهمترين پايگاه uddi پايگاه uddi business registry يا ubr نام دارد و توسط کميته uddi طراحی و اجرا شده است اطلاعات اين پايگاه در چهار نقطه نگهداری می شود مايکروسافت ibm sap و hp اطلاعاتی که در يکی از چهار پايگاه تغيير کند در سه تای ديگر نيز اعمال می شود اطلاعات درون اين پايگاه ها شبيه دفترچه تلفن است white pages که در آنها اطلاعات تماس شرکت ها و توضيحات متنی آنهاست yellow pages حاوی اطلاعات طبقه بندی شده شرکتها و اطلاعات درباره توانايی های الکترونيکی آنها می باشد green pages حاوی اطلاعات تکنيکی درباره سرويس های آنها و نحوه پردازش اطلاعات شرکت آنها می باشد اطلاعات تجاری و سرويس های شرکت ها کاملا طبقه بندی شده است و اجازه می دهد که به راحتی در آنها جستجو کرد سپس متخصصان it می توانند از اين اطلاعات استفاده کرده و شرکت ها را برای خدمات بهتر به هم متصل کنند با اين شرح uddi امکان پياده سازی مدل b b را ايجاد می کند و شرکتها می توانند از سرويس های يکديگر استفاده کنند شرکت هايی که به uddi علاقه نشان داده اند قدرتمند هستند و خيلی از آنها از وب سرويس و استانداردهای آن در محصولات خود استفاده می کنند ntt communications of tokyo يکی از شرکت هايی است که در حال اضافه کردن توضيحاتی به ساختار uddi است در هر حال حاضر شرکت ها هنوز کمی درباره وارد کردن خود در پايگاه های عمومی محتاط هستند اين چيز عجيبی نيست شرکتها ابتدا اين امکانات را فقط برای شرکای خود ايجاد می کنند شرکتهای بزرگ نيز برای مديريت بر سرويس های خود و اشتراک آنها بين قسمت های مختلف از اين استاندارد استفاده می کنند وقتی اين استاندارد به حد بلوغ خود برسد و کاربران با آن احساس راحتی بکنند استفاده از آن نيز در مکان های عمومی فراگير خواهد بود اين تغيير رويه برای شرکت های بزرگی که b b را به روش های قديمی اجرا کرده بودند مشکل است بعضی نيز اشکال امنيتی بر اين روش می گيرند و مايل نيستند اطلاعاتشان را بدهند اما با گذشت زمان و کامل شدن اين تکنولوژی و درک لزوم استفاده از آن شرکت ها چاره ای جز استفاده از آن ندارند متن اصلی از سايت http www deitel com گرفته شده است نوشته شده توسط من ذخيره كردن connection string در فايل web config مقدمه بسياری اوقات برنامه های كاربردی نياز دارند كه چيزهای خاصی مانند connection string رشته اتصال يا پارامترهای عمومی برنامه به طور خارجی برای برنامه ذخيره شوند راه قديمی برای اين كار استفاده از فايلهای ini يا وارد كردن آنها در registry بود البته هر كدام از اين روشها مشكلات خاص خود را دارند asp net راه مناسبی را برای انجام آن فراهم كرده است شما می توانيد اين قبيل مقادير را قسمت lt appsettings gt فايل web config ذخيره كنيد كد زير بيانگر اين مطلب می باشد ذخيره كردن مقادير در web config كد زير را به فايل web config خود اضافه كنيد lt configuration gt lt appsettings gt lt add key connectionstring value integrated security sspi initial catalog northwind data source myserver netsdk gt lt appsettings gt فضانامهای مورد نياز فضانامهای زير كلاسهای مورد نياز برای اين كار را فراهم می كنند system collections specialized system configuration كد vb net برای بازيابی مقادير كد زير چگونگی بازيابی مقادير را با استفاده از vb net نشان می دهد dim myvar as string dim nv as namevaluecollection nv configurationsettings appsettings myvar nv connectionstring البته شما می توانيد اين كار را با سرعت بيشتری انجام دهيد dim myvar as string myvar configurationsettings appsettings connectionstring كد c برای بازيابی مقادير كد زير چگونگی بازيابی مقادير را با استفاده از c نشان می دهد string myvar namevaluecollection nv nv configurationsettings appsettings myvar nv connectionstring از طريق كد زير می توانيد اين كار را با سرعت بيشتری انجام دهيد string myvar myvar configurationsettings appsettings connectionstring اميدوارم كه مقاله برايتان مفيد باشد نوشته شده توسط من فرم login فرم ورودی شامل کنترلهای زير است btncancel txtusername txtpassword btnsubmit زيربرنامه ای بنام check تعريف می کنيم public sub check dim strconn as string server localhost uid pwd database mydb پس از گرفتن connection به تعريف sqlcommand و datareader می پردازيم dim myconn as new system data sqlclient sqlconnection strconn dim objdr as system data sqlclient sqldatareader حال متغيری از نوع رشته ای را برای انتخاب فيلدهای جدولمان تعريف می کنيم dim mysql as string select username password from login where username amp txtusername text amp and password amp txtpassword text amp dim cmd as new system data sqlclient sqlcommand mysql myconn myconn open objdr cmd executereader system data commandbehavior closeconnection سپس datareader بر اساس cmd تعريف شده excute می شود حال بايد بررسی کنيم که همچنين کاربری در جدول login وجود دارد يا نه اگر کاربری با مشخصات ارسالی وجود نداشته باشد پيغامی به کاربر مبنی بر نادرست بودن اطلاعات ورودی داده می شود if not objdr read then response write lt script gt alert username or password is invalid location href loginadmin aspx lt script gt response end txtusername text txtpassword text objdr close myconn close else session password objdr password response redirect indexadmin aspx در غير اين صورت به صفحه مربوطه انتقال داده می شود و در آخر objdr و myconn را close می کنيم لازم به ذکر است که در صفحه ارجاعی در قسمت page_load دستور زير که نشان دهنده کلمه عبور صحيح است نوشته شود if session password then response write lt script gt alert you must be login location href loginadmin aspx lt script gt response end response redirect loginadmin aspx end if نوشته شده توسط من asp net و پايگاه داده در اين مقاله شما در مورد کار با با پايگاه داده در asp net آشنا خواهيد شد بدين معنا که در صدد هستيم تا رويه ای کلی از مفاهيم روشها وابزارهای مورد استفاده در asp net جهت برقراری ارتباط با پايگاه داده نشان دادن داده ها دستکاری داده ها بهنگام سازی و توسط اشيايی چون مهيا کننده های بانک های اطلاعاتی dataset ها xml و معرفی می شود اگر تا بحال با پايگاه داده کار نکرده ايد شايد provider يک پايگاه داده برای شما نامفهوم باشـد بطور خلاصه راهی را که بايد طی کرد تا به پايگاه داده متصل شده آنرا باز کرده و داده ها را دستکاری کرده و دستورات را اجرا نمود بوسيله يک تهيه کننده اطلاعات مشخص می شود در asp net معمولا از دو روش برای اين کار استفاده می شود روش اول اينکه اگر پايگاه داده شما از نوع sql server باشد بايستی با مدل sqlclient کار کرد و اگر پايگاه داده شما غير از sql server باشد در حال حاضر بايد از روش ديگر يعنی مدل oledb استفاده نمود بعنوان مثال اگر پايگاه داده شما oracle sybase و يا access باشد بايد از روش oledb استفاده کنيد روش کار بدين صورت است که ابتدا بايستی فضانام زير را در صفحاتی که از بانک اطلاعاتی استفاده می شود فراخوانی کرد lt import namespace system data gt lt import namespace system data oledb gt برای برقراری ارتباط با پايگاه معمولا از عبارت زير استفاده می شود dim objconn as new oledbconnection provider microsoft jet oledb datasource e db users mdb که قسمت datasource آدرس فايل پايگاه داده است که در اينجا يک بانک access است همانگونه که ملاحظه می کنيد از رشته ارتباطی يا connection string بعنوان پارامتر استفاده شده است و بوسيله متد open ارتباط باز می شود objconn open لازم به توضيح است که در پايان کار بوسيله متد close ارتباط را خاتمه می دهيم بمحض ارتباط با پايگاه داده می توان دستورات را به آن فرستاد اين کار معمولا بوسيله شی oledbcommand انجام می شود جهت انجام اين کار می توان يک دستور sql يا نام يک روال ذخيره شده stored procedure را مشخص نمود و بنا به مقتضيات می توان اعمال مختلفی را روی پايگاه پياده نمود dim objcommand as new oledbcommand select from users objconn ملاحظه می کنيد که کلاس command از دو پارامتر رشته sql و نام رشته ارتباطی برای فرستادن دستورات به پايگاه داده استفاده می کند برای مثال آنچه را که در عبارت فوق ديديد می توان به بخشهای کوچکتر زير تقسيم کرد ابتدا تعريف شي dim objcommand as new oledbcommand سپس نسبت دادن آن به رشته ارتباطی جهت برقراری ارتباط پايگاه objcommand connection objconn مشخص کردن عمليات مورد نظر بوسيله دستورات sql objcommand commandtext select from users حتی می توانيد عمليات فوق را بصورت ذيل انجام دهيد dim objcommand as new oledbcommand sql string connection string روشهای فوق دقيقا يک کار مشابه را انجام می دهند با اين اوصاف که در عبارت آخر بجای شئ ارتباطی از يک رشته ارتباطی استفاده شده است تا اين مرحله هنوز عبارات فوق را به اجرا در نياورده ايم برای اين کار راه های متفاوتی وجود دارد از executenonquery زمانی استفاده می شود که قصد برگرداندن داده ها از پايگاه مورد نظر نباشد مثلا در مواقعی که از دستورات sql جهت درج insert و بهنگام سازی update استفاده شود objcommand executenonquery از executereader برای خواندن و برگرداندن اطلاعات از پايگاه استفاده می کنيم dim objread as oledbdatareader objread objcommand executereader برای دستکاری يک تک مقدار مشخص و مورد نظر از متد executescalar استفاده می شود برای خواندن داده ها معمولا از کلاس datareader استفاده می شود برای خواندن نه برای اضافه کردن يا بروز کردن اين شئ بصورت مستقيم به پايگاه داده دسترسی دارد و فقط خواندنی read only است البته اين خاصيت محدوديتی برای آن است اما برای خواندن ساده داده روشی کامل بشمار می رود dim objreadaer as oledbdatareader objreader objcommand executereader whlie objreader read response write objreader getstring amp lt br gt end while عبارت فوق جهت نمايش و چاپ داده ها بکار می رود متد read خواندن را تا زمانيکه به پايان نتايج نرسد ادامه می دهد و عبارت objreader getstring برای برگرداندن نسخه رشته ای ستونهای رکورد کاربرد دارد در ليست زير چند متد ديگر برای برگرداندن مقادير داده ای متغيرها آمده است getboolean x مقدار منطقی را بر می گرداند getchar x مقدار کاراکتری را برمی گرداند get datatypecolumn x نوع داده را در ستون برميگرداند getstring x مقداررشته ای را برمی گرداند در اين بخش شما به دانسته های بخش اول نياز داريد شئ بعدی که مورد بحث قرار می گيرد کلاس data adapter است oledbdataadapter اطلاعات را می گيرد و يک ارتباط منطقی بين داده ها و کلاس dataset ايجاد ميکند بطور کلی ميتوان گفت data adapter در نظر اول معادل data command می باشد روش استفاده از data adapter ها بطور معمول بصورت زير تعريف می شود dim objadapter as new oledbdataadapter select from users objconn ملاحظه می کنيد که شئ adapter از دو پارامتر يکی رشته دستورات sql و ديگری رشته ارتباطی برای فرستادن دستورات به پايگاه داده استفاده می کند بطور معمول dataadapter برای پرکردن dataset ها و بروز کردن پايگاه بوسيله يک dataset و اجرا کردن دستورات بکار می رود اکنون نمای کلی از کاربرد فوق را در زير می بينيد dim ds as dataset new dataset objadapter fill ds users متد fill جهت اجرای دستور تنظيم شده در data adapter بکار می رود بعبارت ديگر اطلاعات واکشی شده از پايگاه داده در يک جدول با نامی که ما تعيين می کنيم users ذخيره می شود نکته ضروری اينست که تکنيک mappings در اکثر مواقع کارساز است mappings عبارت است از ساختن يک نام مستعار alias برای نام جداول در يک dataset اين alias ها هيچگونه تاثيری در منبع داده ندارد و وقتی که بوسيله dataadapter فرستاده می شود بصورت خودکار بنام پيش فرض تبديل ميشود اين تکنيک باعث خوانايی کد و راهنمايی برنامه نويس در ارجاع های بعدی وتشخيص جداول فراخوانی شده ميشود objadapter tablemappings add adbtable users with objadapter tablemapping columnmappings add pid id add lastname lnam add streetaddress addy end with objadapter fill ds در تکنيک فوق بجای استفاده از عبارت ds tables adbtable ميتوانيم ds tables users را بکار ببريم در بخشهای آينده ديگر فوايد استفاده از mappings آمده است همچنين کلاس commandbuilder برای بهنگام کردن يک بانک که بوسيله dataset صورت گرفته يک شيوه صحيح بشمار ميرود dim cmdbld as new oledbcommandbuilder objadapter که در عبارت فوق شئ objadapter بعنوان پارامتر به دستور commandbuilder فرستاده شده و سپس بوسيله متد update منبع داده بهنگام می شود objadapter update ds users در ادامه مثال زير بعنوان جمع بندی مطالب قبلی آمده است توجه داشته باشيد در مثال زير نتيجه ای بعنوان خروجی در مرورگر نمايش داده نمی شود و فقط از منبع داده ای اطلاعات خوانده شده و يک شئ dataset پر می شود lt import namespace system data gt lt import namespace system data oledb gt lt script language vb runat server gt sub page_load sender as object e as eventargs dim objconn as new oledbconnection provider microsoft jet oledb data source e db users mdb objconn open dim ds as dataset new dataset dim objadapter as new oledbdataadapter select from users objconn dim objcmdbld as new oledbcommandbuilder objadapter obj adapter fill ds users end sub lt script gt نوشته شده توسط من دستيابی به بانک اطلاعاتی access با استفاده از vb net دستيابی به بانک اطلاعاتی access با استفاده از vb net در اين مقاله قصد داريم به نحوه بازيابی و نمايش اطلاعات موجود در يک بانک اطلاعاتی access اشاره نمائيم هدف از مقاله فوق پرداختن به تمامی رويکردهای موجود در اين زمينه نبوده و صرفا به معرفی يکی از گزينه های موجود در اين زمينه اشاره خواهد شد در اين راستا از تکنولوژی های asp net ado net و vb net استفاده خواهد شد از کلاس های oledbconnection oledbcommand و oledbdatareader مربوط به ado net بمنظور انجام عمليات لازم در ارتباط با بانک اطلاعاتی از asp net بمنظور ايجاد فرم وب و ارائه داده با استفاده از کنترل سرويس دهنده table و از زبان vb net بمنظور نوشتن دستورالعمل های مورد نظر استفاده می گردد در ابتدا لازم است با سه کلاس ado net که در ادامه از آنان استفاده خواهد شد بيشتر آشنا شويم کلاس oledbconnection شی فوق يک اتصال منحصر بفرد با يک منبع داده را ايجاد می نمايد در رابطه با يک بانک اطلاعاتی سرويس گيرنده سرويس دهنده اين امر معادل يک اتصال شبکه به سرويس دهنده است با توجه به قابليت های حمايت شده توسط native ole db provider برخی از متدها و يا خصلت ها مربوط به شی oledbconnection ممکن است در دسترس و قابل استفاده نباشد زمانيکه نمونه ای از oledbconnection ايجاد می گردد تمامی خصلت های مربوطه مقدار اوليه خود را دارا خواهند بود پس از اتمام عمليات موردنظر در ارتباط با بانک اطلاعاتی می بايست با فراخوانی close و يا dispose اقدام به غير فعال نمودن اتصال ايجاد شده با بانک اطلاعاتی مربوطه نمود کلاس oledbcommand يک عبارت sql و يا stored procedure را بمنظور اجراء در رابطه با يک منبع داده ارائه می نمايد کلاس فوق از متدهای زير بمنظور اجرای دستورات در رابطه با يک منبع داده استفاده می نمايد executereader متد فوق دستوراتی را اجراء می نمايد که خروجی آنان شامل سطرهائی خواهد بود executenonquery باعث اجرای دستوراتی نظير sql insert delete update و set خواهد شد executescalar بازيابی صرفا يک مقدار از يک بانک اطلاعاتی کلاس oledbdatareader متد فوق امکان خواندن سطرهائی از داده موجود در يک منبع داده را فراهم می نمايد فقط بسمت جلو بمنظور ايجاد يک oledbdatareader می بايست متد executereader مربوط به شی oledbcommand فراخوانده شود ماداميکه oledbdatareader در حال استفاده است اتصال مرتبط oledbconnection عمليات ديگری را در ارتباط با oledbconnection نمی توان انجام داد امکانات مورد نياز برای دنبال نمودن اين مقاله و اجرای نمونه مثالی که در ادامه بررسی می گردد به امکانات زير نياز خواهد بود نصب يکی از نسخه های ويندوز و يا نسخه ويندوز نصب iis نصب فريمورک دات نت نسخه يا نسخه يک بانک اطلاعاتی نمونه اکسس نظير northwind ايجاد يک برنامه وب asp net با استفاده از vb net بمنظور ايجاد يک برنامه وب asp net با استفاده از vb net مراحل زير را دنبال می نمائيم اجرای برنامه ويژوال استوديو دات نت از طريق منوی file گزينه new و در ادامه project را انتخاب نمائيد در جعبه محاوره ای new project در بخش project types گزينه visual bacic projects را انتخاب کليک و در ادامه asp net web application را انتخاب نمائيد در فيلد location بجای نام پيش فرض webapplication نام testaccessdb را انتخاب نمائيد در صورتيکه از يک سرويس دهنده محلی استفاده میگردد می توان نام سرويس دهنده را http localhost در نظر گرفت بدين ترتيب در فيلد location آدرس مربوطه بصورت زير نشان داده خواهد شد http localhost testaccessdb ايجاد يک فرم وب نمونه در نمونه کد نوشته شده از کنترل سرويس دهنده table مربوط به asp net استفاده شده که بصورت پويا يک نمايش ساده از داده بازيابی شده را نشان خواهد داد asp net مجموعه متنوعی از کنترل های انعطاف پذير را ارائه که می توان از آنان با توجه به رويکردهای متفاوت در رابطه با نمايش داده استفاده نمود بمنظور ايجاد يک فرم وب در پروژه ايجاد شده در مرحله قبل مراحل زير را دنبال می نمائيم اضافه نمودن يک فرم جديد با نام datasample aspx به برنامه وب asp net در ويژوال استوديو دات نت بمنظور انجام خواسته فوق دو مرحله زير را دنبال می نمائيم مرحله يک در solution explorer بر روی گره project کليک سمت راست نموده و گزينه add و در ادامه گزينه add web form انتخاب گردد مرحله دو درفيلد name نام datasample aspx را درج و در ادامه گزينه open انتخاب گردد از طريق toolbox مربوط به web forms tab يک table asp net server control را انتخاب drag و بر روی صفحه aspx مستقر نمائيد در حالت desgin view در properties نام id را به displaytable تغيير دهيد در solution explorer بر روی صفحه aspx کليک سمت راست نموده و گزينه view code را انتخاب نمائيد مرجع namespace زير را در بالاترين قسمت فايل کلاس code behind وارد نمائيد imports system data oledb کد زير را در ارتباط با رويداد page_load در نظر می گيريم page_load event handler private sub page_load byval sender as system object byval e as system eventargs handles mybase load استفاده از يک متغير رشته ای بمنظور ذخيره سازی connectionstring dim connectstring as string provider microsoft jet oledb amp _ data source c mydb nwind mdb ايجاد يک شی oledbconnection و ارسال مقدار متغير connectionstring dim cn as oledbconnection new oledbconnection connectstring فعال نمودن connection cn open استفاده از يک متغير بمنظور ذخيره عبارت sql dim selectstring as string select customerid contactname phone from customers ايجاد يک شی oledbcommand در اين خط متغير عبارت sql و شی oledbconnection ارسال می گردد dim cmd as oledbcommand new oledbcommand selectstring cn ارسال commandtext به connection و ايجاد يک oledbdatareader oledbdatareader از نوع فقط بسمت جلو خواهد بود dim reader as oledbdatareader cmd executereader تنظيم عرض جدول displaytable width unit percentage ايجاد يک سطر جديد برای اضافه نمودن عنوان جدول dim tableheading as tablerow new tablerow ايجاد و اضافه نمودن سلول های شامل ستون customer id dim customeridheading as tableheadercell new tableheadercell customeridheading text customer id customeridheading horizontalalign horizontalalign left tableheading cells add customeridheading ايجاد و اضافه نمودن سلول های شامل ستون contact name dim contactnameheading as tableheadercell new tableheadercell contactnameheading text contact name contactnameheading horizontalalign horizontalalign left tableheading cells add contactnameheading ايجاد و اضافه نمودن سلول های شامل ستون phone dim phoneheading as tableheadercell new tableheadercell phoneheading text phone phoneheading horizontalalign horizontalalign left tableheading cells add phoneheading displaytable rows add tableheading تکرار در بين داده انتخابی نتايج و افزودن داده برای هر يک از ستون های مورد نظر در جدول while reader read dim detailsrow as tablerow new tablerow dim customeridcell as tablecell new tablecell customeridcell text reader customerid tostring detailsrow cells add customeridcell dim contactnamecell as tablecell new tablecell contactnamecell text reader contactname tostring detailsrow cells add contactnamecell dim phonecell as tablecell new tablecell phonecell text reader phone tostring detailsrow cells add phonecell displaytable rows add detailsrow end while بستن connection reader close cn close end sub مقدار متغير connectstring در ابتدای کد نوشته شده فوق را تغيير و آن را به محلی که بانک اطلاعاتی موجود است اشاره دهيد از طريق منوی file گزينه save all را انتخاب تا فرم وب و ساير فايل های مرتبط با پروژه ذخيره گردد از طريق منوی build گزينه build solution را بمنظور ايجاد پروژه فعال نمائيد در solution explorer بر روی datasample aspx کليک سمت راست و در ادامه گزينه view in browser را انتخاب نمائيد در ادامه صفحه در مرورگر نمايش و شامل داده موجود در بانک اطلاعاتی مربوطه است اشکالات و خطاهای احتمالی درزمان اجراء ممکن است با خطائی مانند زير مواجه شويم the microsoft jet database engine cannot open the file c mydb nwind mdb it is already opened exclusively by another user or you need permission to view its data خطای فوق اغلب بدليل عدم داشتن مجوز لازم بمنظور دستيابی به فايل فايل بانک اطلاعاتی با انشعاب mdb می باشد بصورت پيش فرض asp net تحت aspnet account در فريمورک دات نت نسخه يک و يا networkservice در فريمورک دات نت نسخه اجراء می گردد در اين رابطه لازم است تغييرات لازم در رابطه با مجوز دستيابی به فايل mdb و فولدری که شامل فايل است اعمال گردد از نصب عناصر مورد نياز microsoft jet database بر روی سيستم مطمئن گرديد در صورتيکه mdac نصب شده باشد microsoft data access components عناصر jet را شامل نمی گردد در چنين مواردی می بايست آخرين نسخه jet service pack بر روی سيستم نصب گردد نوشته شده توسط من فهرست اصلی صفحه نخست پست الکترونيک آرشيو وبلاگ آرشیو موضوعی آموزش سی شارپ c آموزش ویژوال بیسیک vb net آموزش پاسکال آموزش جاوا java آموزش sql server آموزش asp net دات نت net کتاب ebook آموزشado net آرشیو مطالب خرداد اردیبهشت فروردین امکانات عضويت لغو عضويت powered by webgozar copyright all rights reserved by mydotnet blogfa com