<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Iran Developers Network &#187; پایگاه های داده و بانکهای اطلاعاتی</title>
	<atom:link href="http://www.irandevelopers.com/category/programming/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.irandevelopers.com</link>
	<description>IDN بزرگترین مرجع توسعه دهندگان ایران - آموزش زبانهای برنامه نويسی</description>
	<lastBuildDate>Mon, 23 Aug 2010 08:51:43 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>عبارت NOT NULL در SQL</title>
		<link>http://www.irandevelopers.com/programming/database/mssql/notnull-sql-2123/</link>
		<comments>http://www.irandevelopers.com/programming/database/mssql/notnull-sql-2123/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:43:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[اس کیو ال سرور میکروسافت]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/uncategorized/-2123/</guid>
		<description><![CDATA[عبارت not null  موجب میشود تا ستون مورد نظر نتواند مقدار null  را بپذیرد not null  باعث میشود تا فیلد مورد نظر همیشه دارای مقدار بوده به این معنا که شما نمیتوانید یک record جدید بدون value یا یک record موجود را بدون مقدار(value) ,  به روز کنید(update). عبارت SQL زیر موجب میشود تا ستون [...]]]></description>
			<content:encoded><![CDATA[<p dir="rtl">عبارت not null  موجب میشود تا  ستون مورد نظر نتواند مقدار null  را بپذیرد</p>
<p dir="rtl">not null  باعث میشود تا فیلد  مورد نظر همیشه دارای مقدار بوده به این معنا که شما نمیتوانید یک record  جدید بدون value یا یک record موجود را بدون مقدار(value) ,  به روز  کنید(update).</p>
<p dir="rtl">عبارت SQL زیر موجب میشود تا ستون  های &#8220;P_Id&#8221; و &#8220;LastName&#8221; مقدار null را نپذیرند(یعنی نمیتوان این دو فیلد  را خالی بگذاریم).</p>
<pre dir="ltr">CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
</pre>
<p dir="rtl">مترجم: علیرضا مسگری</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/database/mssql/notnull-sql-2123/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UNIQUE در SQL</title>
		<link>http://www.irandevelopers.com/programming/database/mssql/unique-sql-2121/</link>
		<comments>http://www.irandevelopers.com/programming/database/mssql/unique-sql-2121/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 19:33:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[اس کیو ال سرور میکروسافت]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/uncategorized/-2121/</guid>
		<description><![CDATA[unique در دستورات SQL باعث میشود که فیلد مورد نظر در database یکتا شناخته شود. primery key  و unique در واقع تضمین یکتا بودن فیلد مورد نظر در جدول ما میشود. در یک primery key  به طور خودکار دستور  unique  وجود دارد. نکته: در یک جدول پایگاه داده ای شما میتوانید چندین unique  را داشته [...]]]></description>
			<content:encoded><![CDATA[<p dir="rtl">unique  در دستورات SQL باعث میشود که فیلد مورد نظر در database یکتا شناخته شود.</p>
<p dir="rtl">primery key  و unique در واقع  تضمین یکتا بودن فیلد مورد نظر در جدول ما میشود.</p>
<p dir="rtl">در یک primery key  به طور خودکار  دستور  unique  وجود دارد.</p>
<h3 dir="rtl">نکته:</h3>
<p dir="rtl">در یک جدول پایگاه داده ای شما  میتوانید چندین unique  را داشته باشید اما فقط یک  primery key  میتوانید  داشته باشید.</p>
<p dir="rtl">دستور unique  در جدول زیر باعث  یکتا شدن مقدار &#8220;P_Id&#8221; میشود.</p>
<p dir="rtl"><strong>MySQL:</strong></p>
<pre dir="ltr">CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
</pre>
<p dir="rtl"><strong>SQL Server / Oracle / MS  Access:</strong></p>
<pre dir="ltr">CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
</pre>
<p dir="rtl">برای نام گذاری یک مجدودیت UNIQUE  و یا برای معین کردن UNIQUE های موجود در یک جودل می توان از دستور زیر  استفاده نمود.</p>
<p dir="rtl"><strong>MySQL / SQL Server /  Oracle / MS Access:</strong></p>
<pre dir="ltr">CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
</pre>
<p dir="rtl">
<p dir="rtl">ترکیب دستور های ALTER TABLE و  UNIQUE یعنی UNIQE کردن یک مقدار برای جدول ساخته شده.</p>
<p dir="rtl"><strong>MySQL / SQL Server /  Oracle / MS Access:</strong></p>
<pre dir="ltr">ALTER TABLE Persons
ADD UNIQUE (P_Id)</pre>
<h3>DROP  کردن فیلد UNIQE :</h3>
<p><strong>MySQL:</strong></p>
<pre dir="ltr">ALTER TABLE Persons
DROP INDEX uc_PersonID
</pre>
<p><strong>SQL Server / Oracle / MS Access:</strong></p>
<pre>ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
</pre>
<p>مترجم: علیرضا  مسگری</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/database/mssql/unique-sql-2121/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>طراحی بانک های اطلاعاتی : مبانی مدل سازی</title>
		<link>http://www.irandevelopers.com/programming/designdatabasefirststep880730-1969/</link>
		<comments>http://www.irandevelopers.com/programming/designdatabasefirststep880730-1969/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 19:38:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1969</guid>
		<description><![CDATA[طراحی پایگاه داده و ایجاد نمودار ارتباط موجودیت ها (ERD) یکی از مهمترین بخش های چرخه حیات توسعه یک نرم افزار است  که در برخی موارد از آن به عنوان مهمترین بخش نیز نام برده می شود . مدل صحیح و به هنگام (Up To Date) اطلاعات می تواند به عنوان مهمترین ابزار مرجع برای [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">طراحی پایگاه داده و ایجاد نمودار ارتباط موجودیت ها (ERD) یکی از مهمترین بخش های  چرخه حیات توسعه یک نرم افزار است  که در برخی موارد از آن به عنوان مهمترین  بخش نیز نام برده می شود . مدل صحیح و به هنگام (Up To Date) اطلاعات می تواند به  عنوان مهمترین ابزار مرجع برای مدیران بانک اطلاعاتی (DBAs) ، پیاده کنندگان نرم  افزار و سایر اعضاء تیم توسعه دهنده نرم افزار باشد . فرآیند ایجاد مدل داده به تیم  توسعه دهنده کمک می کند تا به پرسش های مطرح شده توسط کاربران نهائی سیستم پاسخ  دهند .همچنین طراحی کارا و موثر پایگاه داده به تیم توسعه دهنده این امکان را می  دهد تا سیستم را از همان ابتدا در فرم مناسب پیاده سازی نمایند . ساخت سیستم با  کیفیت فوق الذکر این امکان را به تیم توسعه دهنده خواهد داد تا زمان کلی انجام  پروژه را کاهش دهند ، که در واقع این امر موجب کاهش هزینه های توسعه پروژه نیز  خواهد شد .<br />
با توجه به موارد فوق ، شعار طراحی خوب و جامع پایگاه داده این است که :</span></span> <span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma;"> </span></span></p>
<div><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma;"> </span></span> <span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma;"></p>
<table class="code" style="border-collapse: collapse; height: 20px;" dir="ltr" border="1" cellspacing="0" cellpadding="0" width="204" bordercolor="#c0c0c0">
<tbody>
<tr>
<td width="202" height="20" bgcolor="#f4f4ff">
<p dir="rtl" align="center"><span style="font-family: Tahoma; font-size: x-small;"> اول اندازه بگیر و  بعد قیچی کن</span></p>
</td>
</tr>
</tbody>
</table>
<p></span></span></div>
<p><span style="font-family: Times New Roman; font-size: small;"> </span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"> طراحان خوب و خبره بانک های اطلاعاتی ، مبانی و اصول نرمال سازی پایگاه داده را  همواره در خلال طراحی به خاطر داشته و آن را به کار خواهند گرفت . همانطور که در  مقاله <span style="font-family: Tahoma;">نرمال  سازی بانک های اطلاعاتی </span> به تفصیل بیان شد ، نرمال سازی فرآیندی در خلال  طراحی پایگاه داده است که با چهار هدف عمده ذیل دنبال می شود : </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;"> به حداقل رسانی افزونگی اطلاعات </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;"> به حداقل رسانی تغییر ساختار اطلاعات </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;"> به حداقل رسانی I/O سرور به   منظور کاهش تعداد تراکنش ها (Transactions)</span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;"> و در نهایت حفظ یکپارچگی اطلاعات </span></li>
<p></span></ul>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"> برای طراحی بانک اطلاعاتی نرم افزار و مدل سازی آن  می بایست اصول و تکنیک های ذیل را  مد نظر داشت و از آنها استفاده نمود .</span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">موجودیت (Entity)</span></strong> ،  مجموعه ای از چیزهائی  است که مربوط به بانک اطلاعاتی سیستم مورد نظر می باشد و یا به تعبیر دیگر هر آنچه  که  می خواهید در سیستم راجع به آن اطلاعات جمع آوری و نگهداری نمائید  را شامل می شود  . در مدل فیزیکی  ،  موجودیت تبدیل به جدول (Table) می شود .</span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">خصلت (Attribute)</span></strong> یکی از مشخصه های توصیفی و یا  مقداری موجودیت می باشد . در مدل فیزیکی یک خصلت به یک ستون (Column) و یا فیلد  (Field) تبدیل می شود . </span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">کلید اصلی (Primary Key)</span></strong> خصلت و یا ترکیبی از  خصلت ها در یک موجودیت است که تضمین کننده یکتا بودن هر رخداد از موجودیت می باشد .  خصلت یا خصلت های کلید اصلی نمی توانند فاقد ارزش باشند (NULL) و معمولا&#8221; کمتر  تغییر می کنند . معمولا&#8221; سعی می شود جهت انتخاب کلید اصلی از خصلت هائی استفاده شود  که کارائی بیشتری داشته و بهترین معرف موجودیت باشند (کارائی یک فیلد از نوع  Integer به مراتب بیشتر از فیلدی از نوع Char است ) . در صورتیکه نتوان در یک  موجودیت خصلت یا خصلت هائی برای کلید اصلی شدن یافت ، آنگاه کلیدهای دستی برای این  کار را ایجاد می کنیم که به آنها کلید Artificial می گویند .</span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">ارتباط ( Relationship)</span></strong> ، ارتباط منطقی بین دو  موجودیت است . یک ارتباط در واقع نشان دهنده قوانین کاری حاکم بر پروژه و اطلاعات  آن است که معمولا&#8221; به صورت جملات فعلی توصیف می گردد . مثل ارتباط بین موجودیت  کارمند و دپارتمان که به صورت جمله ذیل بیان می شود :<br />
&#8220;کارمند شاغل است در دپارتمان&#8221; در این مثال ارتباط بین موجودیت کارمند و دپارتمان  با جمله &#8220;شاغل است&#8221; توصیف میگردد .<br />
دو نوع ارتباط  می تواند بین موجودیت ها وجود داشته باشد :</span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">ارتباط یک به چند (One To Many)</span></strong> در این نوع  ارتباط ، هر رخداد از موجودیت والد با چندین رخداد در موجودیت فرزند ارتباط دارد .  به عنوان مثال چندین کارمند می توانند در یک دپارتمان شاغل به کار باشند .</span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">ارتباط چند به چند (Many To Many) </span></strong>. در این نوع  ارتباط ، چند رخداد از یک موجودیت با چند رخداد از موجودیت دیگر ارتباط دارند . به  عنوان مثال اگر یک کارمند بتواند در چند دپارتمان شاغل به کار باشد ، آنگاه ارتباط  بین موجودیت کارمند و دپارتمان یک ارتباط چند به چند است . ارتباط چند به چند در  طراحی پایگاه داده پذیرفته شده نیست چراکه علاوه بر افزونگی اطلاعات موجب عدم  یکپارچگی اطلاعات نیز می گردد ، از اینرو باید این ارتباط طبق فرم چهارم نرمال سازی  تبدیل به دو ارتباط یک به چند شود . همانطور که در مقاله <span style="font-family: Tahoma;">نرمال سازی  بانک های اطلاعاتی </span> اشاره گردید برای حل این مشکل کافی است یک موجودیت  واسط که به آن موجودیت XREF می گویند ایجاد و خصلت های کلید اصلی هردو موجودیت را  به این موجودیت رابط منتقل نمود . با این عمل هریک از موجودیت های اصلی به عنوان  والد این موجودیت رابط تلقی شده و یک ارتباط یک به چند بین آنها برقرار خواهد شد.  در نتیجه یک ارتباط چند به چند تبدیل به دو ارتباط یک به چند خواهد شد . لازم به  ذکر است که بسیاری از سیستم های مدیریت بانک های اطلاعاتی رابطه ای  ( نظیر  MS SQL  Server) از ارتباط چند به چند پشتیبانی نمی کنند .</span></p>
</li>
<p></span></ul>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">کلید خارجی (Foreign Key)</span></strong> . هرگاه خصلت(های) کلید  اصلی موجودیت والد در موجودیت فرزند وجود داشته باشد (بر اساس ارتباط تعریف شده بین  دو موجودیت) آنگاه این خصلت ها در موجودیت فرزند ، کلید خارجی نامیده می شوند . در  واقع نمی توان هیچ رخدادی در موجودیت فرزند (که دارای کلید خارجی است) ایجاد نمود  که رخداد مربوط به آن (بر اساس محتوای خصلت کلید خارجی) قبلا&#8221; در موجودیت والد  ایجاد نشده باشد . آنگونه که از توصیف فوق استنباط می شود کلید خارجی تضمین کننده  یکپارچگی اطلاعات در داخل پایگاه داده است چرا که باعث می شود که هیچ فرزند بدون  والدی در بانک اطلاعاتی نداشته باشیم . </span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">ارتباط (RelationShip)</span></strong> بین دو موجودیت به دو مدل  ذیل دسته بندی می گردد : </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">ارتباط تعریف شده (identifying Relationship)</span></strong> .  اگر کلید اصلی جدول والد بخشی (یا تمام)  از کلید اصلی جدول فرزند باشد و یا  به تعبیر دیگر بخشی از کلید اصلی موجودیت فرزند کلید خارجی نیز باشد ، در این حالت  ارتباط مابین این دو موجودیت از نوع تعریف شده است . </span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">ارتباط تعریف نشده (Non-Identifying Relationship)</span></strong> ، برخلاف مورد فوق اگر کلید اصلی جدول والد در جدول فرزند وجود داشته باشد اما نه  به عنوان بخشی از کلید اصلی آن و صرفا&#8221; به عنوان یک خصلت غیر کلید ، در این حالت  ارتباط بین این دو موجودیت از نوع تعریف نشده می باشد . ارتباط تعریف نشده خود  دارای دو حالت متفاوت به شرح ذیل است :<br />
<strong><span style="color: #008000;"> mandatory non-identifying relationship </span> </strong>، زمانی است که خصلت کلید خارجی در موجودیت فرزند نتواند فاقد ارزش باشد (Not  Allow NULL)<br />
<strong><span style="color: #008000;">non-mandatory non-identifying relationship</span></strong> ، زمانی است که خصلت کلید خارجی در موجودیت فرزند بتواند فاقد ارزش باشد (Allow  NULL)</span></li>
<p></span></ul>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"> <strong><span style="color: #336699;">Cardinality</span></strong> ، به ما در فهم بیشتر ماهیت ارتباط مابین موجودیت والد و فرزند کمک می کند . جهت  تشخیص Cardinality یک ارتباط کافی است به سئوال ذیل پاسخ داده شود  :<br />
&#8221; چه تعداد رخداد از موجودیت فرزند مرتبط است با هر رخداد از موجودیت والد؟ &#8221;<br />
چهار نوع Cardinality  مختلف به شرح ذیل وجود دارد :</span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">One To Zero or Many</span></strong> به این معنی که هر رخداد    از موجودیت والد با هیچ و یا چند رخداد از موجودیت فرزند مرتبط است . به این نوع    Common Cardinality می گویند.</span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">One To One Or Many</span></strong> به این معنی که هر رخداد از    موجودیت والد با حداقل یک و یا چند رخداد از موجودیت فرزند مرتبط است . به این    نوع P Cardinality می گویند .</span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">One To Zero Or One </span></strong>، به این معنی که هر رخداد    از موجودیت والد با هیچ و یا تنها یک رخداد از موجودیت فرزند مرتبط است . به این    نوع Z Cardinality می گویند .</span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">One to Exactly N ،</span></strong> به این معنی که هر رخداد از    موجودیت والد باید با N رخداد از موجودیت فرزند مرتبط باشد . به این نوع N    Cardinality می گویند .</span></p>
</li>
<p></span></ul>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"> <strong><span style="color: #336699;">خلاصه </span></strong> </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><span lang="en-us"> طرا</span>حی<span lang="en-us"> خوب بانک اطلاعا</span>تی<span lang="en-us"> </span>می <span lang="en-us">تواند به تیم توسعه دهنده  نرم افزار در کاهش زمان انجام پروژه و هزینه ها</span>ی<span lang="en-us"> آن کمک  کند .</span> </span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><span lang="en-us"> طرا</span>حی<span lang="en-us"> بانک اطلاعا</span>تی<span lang="en-us"> و مدل  ساز</span>ی<span lang="en-us"> آن به تیم توسعه دهنده نرم افزار کمک خواهد کرد تا  درک بهتر و عمیقتر</span>ی<span lang="en-us"> نسبت به نیازمندیها</span>ی<span lang="en-us"> کاربران نرم  افزار پیدا کرده و در نتیجه نرم  افزار</span>ی<span lang="en-us"> را توسعه دهند که در برگیرنده قوانین کار</span>ی<span lang="en-us"> و </span>خواسته<span lang="en-us"> آنها باشد .</span></span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><span lang="en-us"> </span>یکی<span lang="en-us"> از اهداف ا</span>صلی<span lang="en-us"> طرا</span>حی<span lang="en-us"> بانک اطلاعا</span>تی<span lang="en-us"> و مدل ساز</span>ی<span lang="en-us"> آن ،  مستقل بودن آن از پلت فرم است ، بنابر این اختیار انتخاب محیط و پلت فرم پیاده ساز</span>ی<span lang="en-us"> فیز</span>یکی<span lang="en-us"> پایگاه داده با تیم توسعه دهنده بوده و در ماحصل کار هیچ تغییر</span>ی<span lang="en-us"> ایجاد نخواهد کرد </span>.</span></p>
</li>
<p></span></ul>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/designdatabasefirststep880730-1969/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>استفاده از توابع API ویندوز در اکسس</title>
		<link>http://www.irandevelopers.com/programming/accesapiwindows880616-1942/</link>
		<comments>http://www.irandevelopers.com/programming/accesapiwindows880616-1942/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 12:43:25 +0000</pubDate>
		<dc:creator>biranvand2009</dc:creator>
				<category><![CDATA[اکسس میکروسافت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1942</guid>
		<description><![CDATA[استفاده از توابع API ویندوز در اکسس جهت استفاده از توابع API ویندوز در قسمتهای مختلف یک برنامه به زبان اکسس یا ویژوال بیسیک باید الگوی تابع مورد نظر را در یک ماژول به صورت Public تعریف نمایید در این الگو شما نام تابع و نام کتابخانه DLL که تابع مورد نظر در آن تعریف [...]]]></description>
			<content:encoded><![CDATA[<p>استفاده از توابع API ویندوز در اکسس</p>
<p>جهت استفاده از توابع API ویندوز در قسمتهای مختلف یک برنامه به زبان اکسس یا ویژوال بیسیک باید الگوی تابع مورد نظر را در یک ماژول به صورت Public تعریف نمایید در این الگو شما نام تابع و نام کتابخانه DLL که تابع مورد نظر در آن تعریف شده را همراه با پارامترهای ورودی/خروجی آن مشخص کنید . همچنین میتوانید از یک نام دلخواه برای فراخوانی تابع استفاده کنید در اینصورت باید نام اصلی یا مستعار تابع در کتابخانه مربوطه اش را بعد از عبارت Alias مشخص کنید.<br />
به عنوان مثال ShellExecuteA یکی از توابع کتابخانه ای ویندوز است که با همین نام در کتابخانه shell32.dll تعریف شده است. با این تابع شما قادر خواهید بود یک فایل دلخواهتان را در محیط برنامه ای که ویندوزتان برای آن پسوندفایل رجیستر شده، باز کنید مثلا یک فایل PDF‌ را در محیط آکروبات.<br />
برای استفاده از این تابع الگوی آنرا به شکل زیر در یک ماژول تعریف نمایید<br />
Public Declare Function ShellExecuteA Lib &#8220;shell32.dll&#8221; (ByVal hwnd As Long, _<br />
ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String,<br />
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long<br />
اگر بخواهید از این تابع با نام apiShellExecute در برنامه تان استفاده کنید باید به جای الگوی فوق، الگوی زیر را در ماژول استفاده کنید.<br />
Public Declare Function apiShellExecute Lib &#8220;shell32.dll&#8221; Alias &#8220;ShellExecuteA&#8221; (ByVal hwnd As Long, _<br />
ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _<br />
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long<br />
حال تابعی به نام ShellExecuteA یا apiShellExecute در قسمتهای مختلف برنامه قابل فراخوانی است. در این مرحله باید تابع را با پارامترهای مناسب صدا زد. مثلا به شکل زیر:<br />
Dim Lret As Long, LshowHow As Long</p>
<p>Dim stFile As String<br />
LshowHow = 1<br />
stFile = &#8220;C:\WO-Status Count8605.pdf&#8221;<br />
Lret = ShellExecuteA (hWndAccessApp, vbNullString, stFile, vbNullString, vbNullString, LshowHow )</p>
<p>یا<br />
Lret = apiShellExecute (hWndAccessApp, vbNullString, stFile, vbNullString, vbNullString, LshowHow )</p>
<p>بسته به شکل تعریف.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/accesapiwindows880616-1942/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>برنامه نویسی بانکهای اطلاعاتی توسط اکسس</title>
		<link>http://www.irandevelopers.com/programming/programmingaccessms88061-1896/</link>
		<comments>http://www.irandevelopers.com/programming/programmingaccessms88061-1896/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 11:46:12 +0000</pubDate>
		<dc:creator>biranvand2009</dc:creator>
				<category><![CDATA[اکسس میکروسافت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>
		<category><![CDATA[برنامه نويسي بانكهاي اطلاعاتي توسط اکسس]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1896</guid>
		<description><![CDATA[یک نرم افزار بانک اطلاعاتی که در Access ایجاد می شود به صورت یک فایل منفرد با پسوند mdb بر روی دیسک ذخیره میشود و از اجزای زیر تشکیل میشود. ۱٫ Tables : جداول اطلاعاتی ۲٫ Queries : پرس و جو ها ۳٫ Forms : فرمها ۴٫ Reports : گزارشها ۵٫ Macros : ماکروها ۶٫ [...]]]></description>
			<content:encoded><![CDATA[<p>یک نرم افزار بانک اطلاعاتی که در Access ایجاد می شود به صورت یک فایل منفرد با پسوند mdb بر روی دیسک ذخیره میشود و از اجزای زیر تشکیل میشود.</p>
<p>۱٫ Tables : جداول اطلاعاتی<br />
۲٫ Queries : پرس و جو ها<br />
۳٫ Forms : فرمها<br />
۴٫ Reports : گزارشها<br />
۵٫ Macros : ماکروها<br />
۶٫ Modules : ماژولها</p>
<p>۱٫ Tables (جداول اطلاعاتی)</p>
<p>جداول اطلاعاتی حاوی مفیدترین اطلاعات به صورت جدولی یا سطری ستونی می باشند . هر سطر میتواند در بر گیرنده اطلاعات یک قلم کالا یا یک شخص خاص باشد که به آن یک رکورد می گویند .هر ستون یک جدول اطلاعاتی ، اطلاعات یک مشخصه خاص از آن رکورد را ذخیره میکند که به آن یک فیلد گفته میشود مانند نام شخص ، شماره پرسنلی یک کارمند و یا کد یک کالا.</p>
<p>۲٫ Queries (پرس و جو ها)</p>
<p>توسط Queryها میتوان اطلاعات مورد نیازمان را از یک یا چند جدول اطلاعاتی استخراج کرد این کار از طریق انتخاب جداول اطلاعاتی حاوی اطلاعات مورد نظر ، برقراری ارتباط بین جداول ، انتخاب فیلدهای مورد نیاز از جداول انتخاب شده و اعمال شرطهای لازم روی فیلدها صورت میگیرد.</p>
<p>۳٫ Forms (فرمها)</p>
<p>فرمها در واقع رابط بین کاربر و اطلاعات ذخیره شده در جداول اطلاعاتی میباشند . فرمها میتوانند توسط کنترلهای گرافیکی مانند جعبه متن ، جعبه لیست و دیگر کنترلهای موجود در جعبه ابزار Access اطلاعات مورد نظر ما را از جداول اطلاعاتی نمایش دهند . و یا امکان اصلاح و افزودن رکورد به جداول اطلاعاتی را فراهم آورند. لازم به ذکر است که هر فرم جهت انجام عملیات فوق روی داده ها از یک منبع داده استفاده میکند که منبع داده یک فرم را میتوان یکی از جداول یا پرس و جوهای موجود انتخاب کرد.</p>
<p>۴٫ Reports گزارشها</p>
<p>توسط گزارشها میتوان اطلاعات استخراج شده از جداول اطلاعاتی را در قالب و شکل دلخواه بر روی کاغذ چاپ کرد .</p>
<p>۵٫ Macros (ماکروها)</p>
<p>ماکروها با به کارگیری یک سری توابع قدرتمند از قبیل نوشتن اطلاعات در یک رکورد جدول اطلاعاتی ، فراخوانی اطلاعات از نرم افزارهای بانک اطلاعاتی دیگر ، ارسال اطلاعات به فرمتهای مورد نیاز برنامه های دیگر و غیره امکان انجام یک سری عملیات مهم را به سادگی و با سرعت زیاد فراهم میآورند .</p>
<p>۶٫ Modules (ماژولها)</p>
<p>هر ماژول میتواند شامل یک یا چند تابع یا زیربرنامه باشد که به صورت اختصاصی Private یا عمومی Public تعریف میشوند همچنین ثوابت مورد استفاده در کلیه فرمهای برنامه را نیز میتوان در اینجا به صورت Public تعریف کرد مانند:</p>
<p>Public Const cotation=&#8221;"&#8221;"</p>
<p>این توابع را میتوان از درون فرمهای دیگر فراخوانی کرد و یا در پرس و جوها و ماکروها از آنها استفاده کرد توابع بر خلاف زیربرنامه ها همیشه مقداری را به عنوان خروجی به برنامه فراخواننده باز میگردانند . به عنوان مثال تابع زیر با دریافت تاریخ تولید و مدت اعتبار یک فراورده ، تاریخ انقضای آن را محاسبه و به برنامه فراخواننده برمیگرداند .</p>
<p>Public Function NextDate6(FirstDate As Variant, interval As Variant) As String<br />
On Error GoTo Errhand<br />
If Nz(FirstDate) = &#8220;&#8221; Then<br />
NextDate6 =&#8221;"<br />
Else<br />
Dim yy1, yy2, mm1, mm2, dd1 As String<br />
Dim tm, vm, dy As Byte<br />
yy1 = Left(FirstDate,2)<br />
mm1 = Mid(FirstDate,3,2)<br />
dd1 = Mid(FirstDate,5,2)<br />
tm = interval + Val(mm1) &#8211; 1<br />
vm = (tm Mod 12)<br />
mm2 = Right(&#8220;0&#8243; &amp; Trim(Str(vm + 1)),2)<br />
dy = (tm &#8211; vm) / 12<br />
yy2 = Trim(Str(Val(yy1) + dy))<br />
NextDate6 = yy2 &amp; mm2 &amp; dd1<br />
End If<br />
GoTo NoError<br />
Errhand:<br />
NextDate6 = &#8220;&#8221;<br />
NoError:</p>
<p>End Function</p>
<p>در تابع فوق جهت نگهداری تاریخ از یک فیلد نوع Text با طول ۶ استفاده شده است با این روش جهت نمایش تاریخ ۸۵۰۲۳۱ به صورت ۸۵/۰۲/۳۱ میتوان خاصیت Input Mask مربوط به فیلد تاریخ یا کنترل نمایش دهنده این فیلد بر روی Form یا Report را به صورت ۹۹/۹۹/۹۹ تنظیم کرد .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/programmingaccessms88061-1896/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>نحوه اتصال به پایگاه داده و اجرای فرامین sql در برنامه نویسی دات نت (قسمت اول)</title>
		<link>http://www.irandevelopers.com/programming/etesalpayegahdadehsql880527-1882/</link>
		<comments>http://www.irandevelopers.com/programming/etesalpayegahdadehsql880527-1882/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 14:17:38 +0000</pubDate>
		<dc:creator>biranvand2009</dc:creator>
				<category><![CDATA[.NET - دات نت]]></category>
		<category><![CDATA[اس کیو ال سرور میکروسافت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1882</guid>
		<description><![CDATA[نحوه اتصال به پایگاه داده و اجرای فرامین sql در دات نت (قسمت اول) (asp.net(c#), sql server) بسمه تعالی در این مقاله می خواهم نحوه اتصال به پایگاه داده SQL SERVER و اجرای دستورات sql را شرح بدهم. برای این کار یک مثال عملی را دنبال می کنیم. کلاس های زیر برای کار با پایگاه [...]]]></description>
			<content:encoded><![CDATA[<p>نحوه اتصال به پایگاه داده و اجرای فرامین sql در دات نت (قسمت اول)<br />
(asp.net(c#), sql server)</p>
<p>بسمه تعالی</p>
<p>در این مقاله می خواهم نحوه اتصال به پایگاه داده SQL SERVER و اجرای دستورات sql را شرح بدهم. برای این کار یک مثال عملی را دنبال می کنیم.</p>
<p>کلاس های زیر برای کار با پایگاه داده مورد نیاز است :<br />
SqlConnection : از این کلاس برای اتصال به پایگاه داده استفاده می شود.<br />
SqlCommand : از این کلاس برای اجرای دستورات sql مانند select, insert, update, delete و اجرای stored procedure ها استفاده می شود.<br />
DataTable : با اجرای دستور select توسط SqlCommand، یک آرایه ای از سطر و ستون ها تولید می شود که برای ذخیره کردن آن، از این کلاس استفاده می شود.<br />
SqlDataAdapter : برای خواندن اطلاعات از پایگاه داده و ذخیره آن در DataTable از این کلاس استفاده می شود. این کلاس کاربردهای دیگری نیز دارد.<br />
ابتدا یک صفحه aspx مانند زیر بسازید</p>
<p>&lt;body&gt;</p>
<p>&lt;form id=&#8221;form1&#8243; runat=&#8221;server&#8221;&gt;</p>
<p>&lt;div style=&#8221;direction: rtl;&#8221;&gt;</p>
<p>&lt;div&gt;</p>
<p>&lt;asp:Label runat=&#8221;server&#8221; ID=&#8221;lblMessage&#8221; /&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;div&gt;</p>
<p>&lt;asp:GridView runat=&#8221;server&#8221; ID=&#8221;gvNames&#8221;&gt;</p>
<p>&lt;/asp:GridView&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;div&gt;</p>
<p>&lt;asp:TextBox runat=&#8221;server&#8221; ID=&#8221;txtName&#8221; Text=&#8221;" /&gt;</p>
<p>&amp;nbsp;&amp;nbsp;&amp;nbsp;</p>
<p>&lt;asp:Button runat=&#8221;server&#8221; ID=&#8221;btnAdd&#8221; Text=&#8221;افزودن&#8221; OnClick=&#8221;btnAdd_Click&#8221; /&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;/div&gt;</p>
<p>&lt;/form&gt;</p>
<p>&lt;/body&gt;</p>
<p>سپس یک database به نام SampleDb بسازید و در آن جدول Names را ایجاد کنید. این جدول دارای یک فیلد id از نوع int و Identity و یک فیلد به نام name و از نوع nvarchar(50) می باشد. برای ایجاد این جدول، کد زیر را در Management Studio یا Query Analyzer اجرا کنید.<br />
SET ANSI_NULLS ON</p>
<p>GO</p>
<p>SET QUOTED_IDENTIFIER ON</p>
<p>GO</p>
<p>CREATE TABLE [dbo].[Names](</p>
<p>[id] [int] IDENTITY(1,1) NOT NULL,</p>
<p>[name] [nvarchar](50) NOT NULL,</p>
<p>CONSTRAINT [PK_Names] PRIMARY KEY CLUSTERED</p>
<p>(</p>
<p>[id] ASC</p>
<p>)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]</p>
<p>) ON [PRIMARY]</p>
<p>اتصال به پایگاه داده :<br />
برای اتصال به پایگاه داده از کلاس SqlConnection استفاده می کنیم. این کلاس یک ویژگی مهم به نام ConnectionString دارد که مشخصات سرور، نام پایگاه داده، نام کاربری، کلمه عبور و خلاصه همه اطلاعات مورد نیاز برای وصل شدن به پایگاه داده باید در آن تعریف شود. برای کسب اطلاعات بیشتر در مورد این ویژگی به msdn و همچنین سایت www.connectionstrings.com مراجعه نمایید.<br />
private readonly string cs = &#8220;server=.;Initial Catalog=SampleDb;Integrated Security=SSPI;Persist Security Info=False;&#8221;;<br />
خواندن اطلاعات از پایگاه داده :<br />
تابع RebindNames با استفاده از پروسیجر Names_GetAll همه رکورد های جدول Names  را می خواند و نمایش می دهد :</p>
<p>SET ANSI_NULLS ON</p>
<p>GO</p>
<p>SET QUOTED_IDENTIFIER ON</p>
<p>GO</p>
<p>CREATE PROCEDURE [dbo].[Names_GetAll]</p>
<p>AS</p>
<p>BEGIN</p>
<p>SELECT * FROM [Names] ORDER BY id;</p>
<p>END</p>
<p>private readonly string cs = &#8220;server=.;Initial Catalog=SampleDb;Integrated Security=SSPI;Persist Security Info=False;&#8221;;</p>
<p>private void RebindNames()</p>
<p>{</p>
<p>using (SqlConnection cnx = new SqlConnection(cs))</p>
<p>{</p>
<p>using (SqlDataAdapter adapter = new SqlDataAdapter(&#8220;Names_GetAll&#8221;, cnx))</p>
<p>{</p>
<p>using (DataTable dt = new DataTable())</p>
<p>{</p>
<p>adapter.Fill(dt);</p>
<p>gvNames.DataSource = dt;</p>
<p>gvNames.DataBind();</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>protected void Page_Load(object sender, EventArgs e)</p>
<p>{</p>
<p>if (!IsPostBack)</p>
<p>{</p>
<p>RebindNames();</p>
<p>}</p>
<p>}</p>
<p>افزودن رکورد به جدول<br />
برای افزودن یک نام به جدول از پروسیجر Names_Add استفاده می کنیم.</p>
<p>SET ANSI_NULLS ON</p>
<p>GO</p>
<p>SET QUOTED_IDENTIFIER ON</p>
<p>GO</p>
<p>CREATE PROCEDURE [dbo].[Names_Add]</p>
<p>@Name nvarchar(50), @Id int OUTPUT</p>
<p>AS</p>
<p>BEGIN</p>
<p>INSERT INTO [Names] ([name]) VALUES (@Name);</p>
<p>SELECT @Id = SCOPE_IDENTITY();</p>
<p>END</p>
<p>protected void btnAdd_Click(object sender, EventArgs e)</p>
<p>{</p>
<p>using (SqlConnection cnx = new SqlConnection(cs))</p>
<p>{</p>
<p>using (SqlCommand cmd = new SqlCommand(&#8220;Names_Add&#8221;, cnx))</p>
<p>{</p>
<p>cmd.CommandType = CommandType.StoredProcedure;</p>
<p>cmd.Parameters.Add(&#8220;@Name&#8221;, SqlDbType.NVarChar, 50).Value = txtName.Text;</p>
<p>cmd.Parameters.Add(&#8220;@Id&#8221;, SqlDbType.Int).Direction = ParameterDirection.Output;</p>
<p>cnx.Open();</p>
<p>cmd.ExecuteNonQuery();</p>
<p>lblMessage.Text = string.Format(&#8220;نام &lt;b&gt;{0}&lt;/b&gt; افزوده شد، کد : {۱}&#8221;, txtName.Text, cmd.Parameters["@Id"].Value);</p>
<p>}</p>
<p>}</p>
<p>RebindNames();<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/etesalpayegahdadehsql880527-1882/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ : تحولی بزرگ در کار با داده  ( بخش اول )</title>
		<link>http://www.irandevelopers.com/programming/linqtahavolparrt880428-1868/</link>
		<comments>http://www.irandevelopers.com/programming/linqtahavolparrt880428-1868/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 16:03:22 +0000</pubDate>
		<dc:creator>سخاروش</dc:creator>
				<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[عمومی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1868</guid>
		<description><![CDATA[نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم افزار در گذشته نیز همواره حائز اهمیت بوده است ، ولی در سالیان اخیر به دلیل گسترش اینترنت و ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به برنامه های وب ، نگاه به نرم افزار و انتظار [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Times New Roman; font-size: small;"><strong><span style="font-family: Tahoma; color: #336699; font-size: x-small;"><br />
</span></strong><span style="font-family: Tahoma; font-size: x-small;"> نرم افزار یکی از ارکان مهم فناوری اطلاعات و ارتباطات در عصر حاضر است . گرچه نرم  افزار در گذشته نیز همواره حائز اهمیت بوده  است ، ولی در سالیان اخیر به دلیل گسترش  اینترنت و ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به برنامه های وب ، نگاه  به نرم افزار و انتظار از آن در جهت تامین طیف گسترده ای از خواسته ها تغییر   و رشد چشمگیری یافته است . به همین دلیل است که در دنیای نرم افزار هر روز تحولات  مهمی اتفاق می افتد و فناوری های جدیدی قدم در این عرصه می گذارند .<br />
ظهور فناوری <span lang="en-us">LINQ</span> ( برگرفته شده از  <span lang="en-us"> <strong>L</strong>anguage-<strong>IN</strong>tegrated <strong>Q</strong>uery</span> ) تلاشی است در  این راستا که با هدف  تحول در  نحوه دستیابی به منابع داده ( صرفنظر از نوع منبع داده )  ، مطرح شده است .<br />
پس از مطرح شدن هر گونه فناوری در عرصه نرم افزار ،  طراحان و پیاده کنندگان با سه پرسش اساسی  مواجه می گردند : این فناوری چیست ؟ چه کار می کند ؟ و چرا ما به آن نیاز  داریم ؟ در این مقاله و سایر مقالاتی که در ادامه بر روی سایت منتشر خواهد شد ، سعی  خواهیم کرد به سه پرسش فوق در ارتباط با فناوری <span lang="en-us">LINQ</span> پاسخ دهیم .</span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><span style="color: #336699;"> <strong>مقدمه<br />
</strong></span>کد و داده دو عنصر اساسی در نرم افزار می باشند  که هر یک دارای  جایگاه تعریف شده مختص به خود است . یکی از فعالیت های مهم در زمان پیاده سازی نرم  افزار ، نوشتن کد مورد نیاز جهت دستیابی به داده است . برای نوشتن کد ، پیاده  کنندگان می توانند از زبان های برنامه نویسی مختلفی استفاده کنند . انتخاب زبان  برنامه نویسی به عوامل متعددی نظیر نوع رفتار برنامه ، پیش زمینه و دانش پیاده  کنندگان ، مهارت های تیم پیاده کننده ، نوع سیستم عامل و سیاست های سازمان بستگی  دارد . صرفنظر از این که پیاده کنندگان چه زبانی را برای نوشتن کد انتخاب می نمایند  ، در زمان پیاده سازی نرم افزار به دفعات مجبور خواهیم بود که با داده سرو کار داشته  باشیم . داده می تواند بر روی دیسک ، جداولی در بانک اطلاعاتی و یا اسناد <span lang="en-us">XML</span> ذخیره شده باشد . در برخی موارد لازم است که با  تمامی نوع های اشاره شده در یک برنامه سرو کار داشته باشیم .  فراموش نکنیم که  مدیریت داده برای هر پروژه نرم افزاری یک باید است .<br />
پیاده کنندگان نرم افزار در زمان نوشتن کد و تولید امکانات مورد نیاز در هر یک از  لایه های متفاوت ( با توجه به  نوع معماری نرم افزار ) ، همواره این پرسش را  با خود مطرح می نمایند که محیط پیاده سازی و یا فریمورک هائی نظیر دات نت چه  امکاناتی را در اختیار آنها خصوصا&#8221; در زمان کار با داده قرار می دهند . به عبارت  دیگر ، یک سیستم عامل چگونه می تواند نیاز پیاده کنندگان نرم افزار را پوشش دهد و   چه امکانات و پتانسیل هائی را در اختیار علاقه مندان به طراحی و پیاده سازی نرم  افزار قرار می دهد .<br />
دات نت به عنوان یکی از فریمورک های پیاده سازی نرم افزار در سالیان اخیر ، امکانات  متعددی را جهت کار با داده در اختیار پیاده کنندگان نرم افزار قرار می دهد . <span lang="en-us">LINQ</span> ، تلاشی است جهت یکپارچگی عمیق تر و بیش تر بین  زبان های برنامه نویسی و داده .   در واقع <span lang="en-us">LINQ</span> مشتمل بر مجموعه ای از عملگرهای <span lang="en-us">query</span> استاندارد است که  معماری لازم جهت حرکت ،  فیلترینگ و اجرای عملیات بر روی تقریبا&#8221; هر نوع منبع داده نظیر <span lang="en-us"> XML</span> ، بانک های اطلاعاتی رابطه ای و اشیاء درون حافظه را فراهم می نماید .<br />
قبل از هر چیز  اجازه دهید ببینیم <span lang="en-us">LINQ</span> چیست ؟</p>
<p><span style="color: #336699;"> <strong><span lang="en-us"> LINQ</span> چیست ؟<br />
</strong> </span>با این که فناوری <span lang="en-us">LINQ</span> در پائیز سال ۲۰۰۵ مطرح گردید ولی فرآیند پیاده  سازی آن از سال ۲۰۰۳ آغاز شده بود . هدف از ابداع فناوری  فوق، ارائه تسهیلات لازم برای پیاده کنندگان جهت کار با داده در بانک های اطلاعاتی  <span lang="en-us">SQL</span> و <span lang="en-us">XML</span> عنوان شده است. در  واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی )   ، اسناد <span lang="en-us">XML</span> با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق  را توجیه کرده بود . پیاده کنندگان مجبور بودند  برای کار با هر یک از منابع  داده ، از روش های مختلفی استفاده نمایند . <span lang="en-us">LINQ</span> را می توان به منزله حلقه ای گمشده  بین دنیای  داده و زبان های برنامه نویسی همه منظوره  تصور کرد  . با استفاده از  <span lang="en-us">LINQ</span> امکان دستیابی به داده   صرفنظر از نوع داده   ، با روشی مشابه و یکسان فراهم می گردد .<br />
پیاده کنندگان نرم افزار<strong> </strong>در زمان نوشتن برنامه های خود معمولا&#8221; از دو زبان  مختلف جهت رسیدن به یک هدف مشترک استفاده می نمایند . ما برای نوشتن کدها از یک زبان برنامه نویسی نظیر <span lang="en-us">VB.NET</span> و یا <span lang="en-us">#C</span> و برای  گفتگو با سیستم بانک اطلاعاتی از یک  زبان دیگر نظیر <span lang="en-us">SQL</span> استفاده می کنیم  .</span></span></p>
<div><span style="font-family: Times New Roman; font-size: small;"> </span> <span style="font-family: Times New Roman; font-size: small;"></p>
<table class="code" style="border-collapse: collapse; height: 29px;" dir="rtl" border="1" cellspacing="0" cellpadding="0" width="402" bordercolor="#c0c0c0">
<tbody>
<tr>
<td style="text-align: right;" dir="rtl" width="400" height="16" bgcolor="#f4f4ff">
<p style="text-align: center;" dir="rtl"><span style="font-family: Tahoma; font-size: x-small;">برای سفارش  شام خود از یک زبان و برای سفارش چای از زبان دیگر !</span></p>
</td>
</tr>
</tbody>
</table>
<p></span></div>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">این موضوع می تواند چالش های متعددی را برای پیاده کنندگان نرم افزار به دنبال  داشته باشد : </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;">در مواردی که فریمورک  دات نت را به عنوان پلت فرم انتخاب کرده باشیم ، دات نت قادر به درک کدهای <span lang="en-us">SQL</span> نخواهد بود.</span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"> در مواردی که از  زبان های برنامه نویسی حمایت شده در دات نت جهت نوشتن کد در محیط ویژوال استودیو  استفاده می کنیم ، همواره یک ابزار قدرتمند در کنار ما است تا در صورت اشتباه در  گرامر دستورات توصیه های لازم را ارائه نماید ( IntelliSense ) .از ویژگی فوق نمی  توان در ارتباط با  <span lang="en-us">SQL</span> استفاده کرد . </span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;">امکان بررسی نوع ها در  زمان ترجمه وجود ندارد . این بدان معنی است که پیاده کنندگان تا زمانی که برنامه  اجراء نگردد ، نمی توانند مشکلات احتمالی را مشاهده و قبل از زمان اجراء با آنها  برخورد نمایند . </span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;">شرکت مایکروسافت  امکانات متعددی را در فریمورک دات نت جهت کار با اسناد <span lang="en-us">XML</span> ارائه کرده است . ارائه <span lang="en-us">System.Xml </span>،  <span lang="en-us"> System.Xml.XPath</span> و <span lang="en-us">System.Xml.Schema</span> نمونه هائی در این زمینه می باشند . پیاده کنندگان نرم افزار در زمان کار با اسناد <span lang="en-us">XML</span> مجبور بودند که از فناوری های متعددی نظیر    <span lang="en-us">DOM</span> (  برگرفته شده از <span lang="en-us">Document Object Mode</span> ) و <span lang="en-us">XQuery</span> استفاده نمایند . همین موضوع باعث شده بود  که کار با اسناد <span lang="en-us">XML</span> نظیر خواندن و یا نوشتن داده در  آنها برای بسیاری از پیاده کنندگان مشکل  باشد. </span></p>
</li>
<p></span></ul>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">شرکت مایکروسافت برای  حل مشکلات فوق ، بررسی دو راهکار را در دستور کار خود قرار داد : </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">ایجاد پتانسیل های مورد نیاز  مختص <span lang="en-us">XML</span> و یا داده رابطه ای در هر یک از زبان های برنامه نویسی و زمان اجراء</span></strong> .  راهکار فوق نه تنها مشکل اصلی را حل نمی کرد بلکه در مواردی مشکلات را خصوصا&#8221; در  زمینه نگهداری افزایش می داد . </span></p>
</li>
<li dir="rtl">
<p dir="rtl" align="justify"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #800000;">اضافه کردن قابلیت های همه منظوره  نوشتن <span lang="en-us">query</span> در  فریمورک دات نت</span></strong> . به عبارت دیگر یک فریمورک  همه منظوره با قابلیت نوشتن <span lang="en-us">query </span>درون فریمورک دات نت که زبان  های <span lang="en-us">VB.NET</span> و <span lang="en-us">#C</span> بتوانند به  سادگی از مز ایای آن استفاده نمایند . </span></p>
</li>
<p></span></ul>
<p><span style="font-family: Times New Roman; font-size: small;"> </span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">خوشبختانه ، شرکت  مایکروسافت گزینه دوم را انتخاب نمود . ایجاد یک زیرساخت جهت نوشتن <span lang="en-us">query</span> در بین اشیاء ، اسناد <span lang="en-us">XML</span> ، داده رابطه ای و  &#8230;<br />
هم اینک پیاده کنندگان می توانند از مزایای  یک الگوی تعریفی در هر یک از زبان های دات نت  جهت کار با داده  استفاده نمایند .  ارائه مجموعه اپراتورهای استاندارد جهت نوشتن <span lang="en-us">query</span> یکی  از دستاوردهای مهم <span lang="en-us">LINQ</span> محسوب می گردد .  بدین  ترتیب ، پیاده کنندگان می توانند با بکارگیری یک مجموعه یکسان از اپراتورهای نوشتن <span lang="en-us">query</span> در هر یک از زبان های برنامه نویسی حمایت شده در  دات نت ، از داده ذخیره شده در  منابع داده مختلف صرفنظر از نوع منبع داده  استفاده نمایند . همچنین ، امکان استفاده از پتانسیل هائی نظیر    IntelliSense <span lang="en-us"> </span>و بررسی نوع ها در زمان ترجمه نیز  وجود خواهد داشت .<br />
شکل ۱ نحوه عملکرد <span lang="en-us">LINQ</span> را نشان می دهد .</span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><img class="alignnone size-full wp-image-1870" title="introlinq2" src="http://www.irandevelopers.com/wp-content/uploads/2009/07/introlinq2.jpg" alt="introlinq2 LINQ : تحولی بزرگ در کار با داده  ( بخش اول )" width="410" height="291" /></span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">شکل ۱ : عملکرد فناوری <span lang="en-us">LINQ</span> </span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">مثال<br />
</span></strong>برای آشنایی اولیه با  قابلیت های <span lang="en-us">LINQ</span> ، بد نیست بدون این که بخواهیم وارد جزئیات شویم یک مثال کاربردی را با یکدیگر  دنبال نمائیم .<br />
در این مثال با استفاده از <span lang="en-us">LINQ</span> و با یک روش مشابه به  منابع داده مختلفی متصل شده و پس از بازیابی داده ، آنها را در یک <span lang="en-us">ListBox</span> جداگانه نمایش می دهیم .<br />
منابع داده عبارتند از : </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">فولدرهای موجود در یک  درایو </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">پردازه های در حال  اجراء در ویندور </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">یک بانک اطلاعاتی رابطه  ای <span lang="en-us">SQL</span> </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">عناصر موجود در یک  آرایه </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">یک فایل <span lang="en-us">XML</span> </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">یک فایل متن </span></li>
<p></span></ul>
<p><span style="font-family: Times New Roman; font-size: small;"> </span></p>
<div><span style="font-family: Times New Roman; font-size: small;"></p>
<table class="code" style="border-collapse: collapse; height: 23px;" dir="ltr" border="1" cellspacing="0" cellpadding="0" width="507" bordercolor="#c0c0c0">
<tbody>
<tr>
<td dir="ltr" width="615" height="10" bgcolor="#f4f4ff"><span style="font-family: Tahoma;"> <span style="font-size: xx-small;"><span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span><span style="color: #a31515; font-size: xx-small;">Page</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;"><span lang="en-us"> </span>Language</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;VB&#8221;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">uiCulture</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;fa-IR&#8221;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">Culture</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;fa-IR&#8221;</span><span style="font-size: xx-small;"> <span style="background-color: #ffff00;">%&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">Namespace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.Diagnostics&#8221;</span><span style="font-size: xx-small;"><span style="background-color: #ffff00;"> %&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">NameSpace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.IO&#8221;</span><span style="font-size: xx-small;"> <span style="background-color: #ffff00;">%&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">NameSpace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.Linq&#8221;</span><span style="font-size: xx-small;"> <span style="background-color: #ffff00;">%&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">NameSpace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.Data.Linq&#8221;</span><span style="font-size: xx-small;"> <span style="background-color: #ffff00;">%&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">NameSpace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.Data.Linq.Mapping&#8221;</span><span style="font-size: xx-small;"> <span style="background-color: #ffff00;">%&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">NameSpace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.XML.Linq&#8221;</span><span style="font-size: xx-small;"> <span style="background-color: #ffff00;">%&gt;</span><br />
<span style="background-color: #ffff00;">&lt;%</span></span><span style="color: #0000ff; font-size: xx-small;">@</span><span style="font-size: xx-small;"> </span> <span style="color: #a31515; font-size: xx-small;">Import</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">NameSpace</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;System.Collections&#8221;</span><span style="font-size: xx-small;"><span style="background-color: #ffff00;"> %&gt;</span></span></span><span style="font-family: Tahoma;"> <span style="color: #0000ff; font-size: xx-small;">&lt;</span><span style="color: #a31515; font-size: xx-small;">script</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;</span><span style="font-size: xx-small;"><br />
</span><span style="color: #008000; font-size: xx-small;"> &#8216;====================================================================</span></span></p>
<div>
<table id="AutoNumber1" style="border-collapse: collapse; height: 30px;" border="0" cellspacing="0" cellpadding="0" width="79%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="30" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">کلاس ایجاد شده بر اساس داده        موجود در بانک اطلاعاتی <span lang="en-us">Contact</span> برای جدول       <span lang="en-us">Persons</span><br />
<span lang="en-us">LINQ to SQL Class</span></span></td>
</tr>
</tbody>
</table>
</div>
<p><span style="font-family: Tahoma;"><span style="font-size: xx-small;">&lt;Table(Name:=</span><span style="color: #a31515; font-size: xx-small;">&#8220;Persons&#8221;</span><span style="font-size: xx-small;">)&gt;  _<br />
</span><span style="color: #0000ff; font-size: xx-small;">Public</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Class</span><span style="font-size: xx-small;"> Person<br />
<span lang="en-us"> </span>&lt;Column(DbType:=</span><span style="color: #a31515; font-size: xx-small;">&#8220;Int  not null&#8221;</span><span style="font-size: xx-small;">)&gt; _<br />
</span><span style="color: #0000ff; font-size: xx-small;"><span lang="en-us"> </span> Public</span><span style="font-size: xx-small;"> ID </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> </span><span style="color: #0000ff; font-size: xx-small;">Integer<br />
</span><span style="font-size: xx-small;"><span lang="en-us"> </span>&lt;Column(DbType:=</span><span style="color: #a31515; font-size: xx-small;">&#8220;nvarchar(50)  not null&#8221;</span><span style="font-size: xx-small;">)&gt; _<br />
</span><span style="color: #0000ff; font-size: xx-small;"><span lang="en-us"> </span> Public</span><span style="font-size: xx-small;"> Name </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> </span><span style="color: #0000ff; font-size: xx-small;">String<br />
</span><span style="font-size: xx-small;"><span lang="en-us"> </span>&lt;Column(DbType:=</span><span style="color: #a31515; font-size: xx-small;">&#8220;nvarchar(50)  not null&#8221;</span><span style="font-size: xx-small;">)&gt; _<br />
</span><span style="color: #0000ff; font-size: xx-small;"><span lang="en-us"> </span> Public</span><span style="font-size: xx-small;"> Email </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> </span><span style="color: #0000ff; font-size: xx-small;">String<br />
End</span><span style="font-size: xx-small;"> </span><span style="color: #0000ff; font-size: xx-small;">Class<br />
</span><span style="color: #008000; font-size: xx-small;"> &#8216;====================================================================<br />
</span><span style="color: #0000ff; font-size: xx-small;">Protected</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Sub</span><span style="font-size: xx-small;"> Page_Load(</span><span style="color: #0000ff; font-size: xx-small;">ByVal</span><span style="font-size: xx-small;"> sender </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Object</span><span style="font-size: xx-small;">, </span> <span style="color: #0000ff; font-size: xx-small;">ByVal</span><span style="font-size: xx-small;"> e </span> <span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> System.EventArgs)</span></span><span style="color: #008000;"><span style="font-family: Tahoma; font-size: xx-small;"><span lang="en-us"><br />
</span> </span></span></p>
<p><span style="color: #008000; font-size: x-small;"> </span></p>
<div><span style="color: #008000; font-size: x-small;"> </span> <span style="color: #008000; font-size: x-small;"></p>
<table id="AutoNumber1" style="border-collapse: collapse; height: 27px;" border="0" cellspacing="0" cellpadding="0" width="81%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="27" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">بازیابی فولدرهای موجود در        درایو <span lang="en-us">C</span> </span></p>
</td>
</tr>
</tbody>
</table>
<p></span></div>
<p><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> DI </span> <span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> DirectoryInfo = </span> <span style="color: #0000ff; font-size: xx-small;">New</span><span style="font-size: xx-small;"> DirectoryInfo(</span><span style="color: #a31515; font-size: xx-small;">&#8220;<a href="file:///C://">C:\\</a>&#8220;</span><span style="font-size: xx-small;">)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> dirQuery = </span><span style="color: #0000ff; font-size: xx-small;">From</span><span style="font-size: xx-small;"> dir </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> DI.GetDirectories() </span><span style="color: #0000ff; font-size: xx-small;">Order</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">By</span><span style="font-size: xx-small;"><br />
<span lang="en-us"> </span> (dir.Name) </span><span style="color: #0000ff; font-size: xx-small;">Select</span><span style="font-size: xx-small;"> dir.Name<br />
</span><span style="color: #0000ff; font-size: xx-small;">For</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Each</span><span style="font-size: xx-small;"> item </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> dirQuery<br />
<span lang="en-us"> </span>ListBox1.Items.Add(item)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Next</span></span><span style="font-family: Tahoma; font-size: xx-small;"> item<br />
<span lang="en-us"> &#8216;====================================================================</span></span></p>
<p><span style="font-size: x-small;"> </span><span style="color: #008000; font-size: x-small;"></p>
<div>
<table id="AutoNumber1" style="border-collapse: collapse; height: 26px;" border="0" cellspacing="0" cellpadding="0" width="83%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="26" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">بازیابی پردازه های در حال        اجرا در ویندور </span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p></span><span style="font-size: x-small;"> </span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> procQuery = </span><span style="color: #0000ff; font-size: xx-small;">From</span><span style="font-size: xx-small;"> proc </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> Process.GetProcesses() </span><span style="color: #0000ff; font-size: xx-small;">Order</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">By</span><span style="font-size: xx-small;"> proc.I<span lang="en-us">d</span> </span> <span style="color: #0000ff; font-size: xx-small;"> <span lang="en-us">_<br />
</span> Descending</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Select</span><span style="font-size: xx-small;"> proc.Id,  proc.ProcessName<span lang="en-us"><br />
</span> </span><span style="color: #0000ff; font-size: xx-small;">For</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Each</span><span style="font-size: xx-small;"> item </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> procQuery<br />
ListBox2.Items.Add(item.Id &amp; </span> <span style="color: #a31515; font-size: xx-small;">&#8221; &#8220;</span><span style="font-size: xx-small;"> &amp; item.ProcessName)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Next</span><span style="font-size: xx-small;"> item<br />
</span></span><span style="color: #008000;"> <span style="font-family: Tahoma; font-size: xx-small;"> &#8216;=====================================================================</span><span lang="en-us"><span style="font-family: Tahoma; font-size: xx-small;"> </span></span></span></p>
<p><span style="color: #008000; font-size: x-small;"></p>
<div>
<table id="AutoNumber1" style="border-collapse: collapse; height: 25px;" border="0" cellspacing="0" cellpadding="0" width="83%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="25" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">بازیابی داده موجود در جدول       <span lang="en-us">Persons</span> بانک اطلاعاتی <span lang="en-us">Conatct</span></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p></span><span style="font-size: x-small;"> </span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> context </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> DataContext = </span><span style="color: #0000ff; font-size: xx-small;">New</span><span style="font-size: xx-small;"> DataContext(</span><span style="color: #a31515; font-size: xx-small;">&#8220;Data  Source=SRCO-1\SQLEXPRESS;<br />
<span lang="en-us"> </span>Initial Catalog=Contact;Integrated Security=true&#8221;</span><span style="font-size: xx-small;">)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> contact1 </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> Table(</span><span style="color: #0000ff; font-size: xx-small;">Of</span><span style="font-size: xx-small;"> Person) = context.GetTable(</span><span style="color: #0000ff; font-size: xx-small;">Of</span><span style="font-size: xx-small;"> Person)()<br />
</span><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> query = </span><span style="color: #0000ff; font-size: xx-small;">From</span><span style="font-size: xx-small;"> c </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> contact1 </span> <span style="color: #0000ff; font-size: xx-small;">Select</span><span style="font-size: xx-small;"> c.Name, c.Email<br />
</span><span style="color: #0000ff; font-size: xx-small;">For</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Each</span><span style="font-size: xx-small;"> item </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> query<br />
ListBox3.Items.Add(item.Name &amp; </span> <span style="color: #a31515; font-size: xx-small;">&#8221; &#8220;</span><span style="font-size: xx-small;"> &amp; </span><span style="color: #a31515; font-size: xx-small;">&#8221; ==== ◄ &#8220;</span><span style="font-size: xx-small;"> &amp;  item.Email)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Next</span><span style="font-size: xx-small;"> item<br />
</span></span><span style="color: #008000;"> <span style="font-family: Tahoma; font-size: xx-small;">&#8216;=======================================================================</span><span lang="en-us"><span style="font-family: Tahoma; font-size: xx-small;"> </span></span></span></p>
<p><span style="color: #008000; font-size: x-small;"></p>
<div>
<table id="AutoNumber1" style="border-collapse: collapse; height: 29px;" border="0" cellspacing="0" cellpadding="0" width="80%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="29" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">بازیابی عناصر یک آرایه </span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p></span><span style="font-size: x-small;"> </span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> firstnames </span><span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">String</span></span><span style="font-size: xx-small;"><span style="font-family: Tahoma;">() =  {&#8220;سخا روش&#8221;, &#8220;سایت شرکت سخا روش&#8221;, &#8220;سایت مقالات به زبان فارسی&#8221;, &#8220;سری مقالات &#8220;,  &#8220;ایران&#8221;, &#8220;تهران&#8221;} </span><span lang="en-us"><span style="font-family: Tahoma;"> </span></span><span style="font-family: Tahoma;"><br />
</span></span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> val </span> <span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> IEnumerable(</span><span style="color: #0000ff; font-size: xx-small;">Of</span><span style="font-size: xx-small;"> </span><span style="color: #0000ff; font-size: xx-small;">String</span><span style="font-size: xx-small;">) = </span> <span style="color: #0000ff; font-size: xx-small;">From</span><span style="font-size: xx-small;"> fn </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> firstnames _<br />
</span> <span style="color: #0000ff; font-size: xx-small;">Where</span><span style="font-size: xx-small;"> (fn.StartsWith(</span><span style="color: #a31515; font-size: xx-small;">&#8220;س&#8221;</span><span style="font-size: xx-small;">))  _<br />
</span> <span style="color: #0000ff; font-size: xx-small;">Select</span><span style="font-size: xx-small;"> fn<br />
</span><span style="color: #0000ff; font-size: xx-small;">For</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Each</span><span style="font-size: xx-small;"> name </span> <span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">String</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> val<br />
ListBox4.Items.Add(name)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Next</span><span style="font-size: xx-small;"> name<br />
</span></span><span style="color: #008000;"> <span style="font-family: Tahoma; font-size: xx-small;"> &#8216;========================================================================</span><span lang="en-us"><span style="font-family: Tahoma; font-size: xx-small;"> </span></span></span></p>
<p><span style="color: #008000; font-size: x-small;"></p>
<div>
<table id="AutoNumber1" style="border-collapse: collapse; height: 28px;" border="0" cellspacing="0" cellpadding="0" width="81%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="28" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">بازیابی داده ذخیره شده در        یک فایل <span lang="en-us">XML</span> با نام <span lang="en-us">Cities.xml</span> </span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p></span><span style="font-size: x-small;"> </span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> XDoc </span> <span style="color: #0000ff; font-size: xx-small;">As</span><span style="font-size: xx-small;"> XDocument =  XDocument.Load(MapPath(</span><span style="color: #a31515; font-size: xx-small;">&#8220;Cities.xml&#8221;</span><span style="font-size: xx-small;">))<br />
</span><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> query1 = </span><span style="color: #0000ff; font-size: xx-small;">From</span><span style="font-size: xx-small;"> c </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> XDoc.Descendants(</span><span style="color: #a31515; font-size: xx-small;">&#8220;City&#8221;</span><span style="font-size: xx-small;">)  _<br />
</span><span style="color: #0000ff; font-size: xx-small;"> Order</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">By</span><span style="font-size: xx-small;"> c.Element(</span><span style="color: #a31515; font-size: xx-small;">&#8220;Name&#8221;</span><span style="font-size: xx-small;">).Value  _<br />
</span><span style="color: #0000ff; font-size: xx-small;"> Select</span><span style="font-size: xx-small;"> c.Element(</span><span style="color: #a31515; font-size: xx-small;">&#8220;Name&#8221;</span><span style="font-size: xx-small;">).Value<br />
</span><span style="color: #0000ff; font-size: xx-small;">For</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Each</span><span style="font-size: xx-small;"> item </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> query1<br />
ListBox5.Items.Add(item)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Next</span><span style="font-size: xx-small;"> item<br />
<span lang="en-us"> &#8216;======================================================================</span> <span lang="en-us"><br />
</span></span></span><span style="color: #008000; font-size: x-small;"></p>
<div>
<table id="AutoNumber1" style="border-collapse: collapse; height: 25px;" border="0" cellspacing="0" cellpadding="0" width="82%" bordercolor="#111111">
<tbody>
<tr>
<td dir="rtl" width="100%" height="25" align="center" bgcolor="#bfd5ea">
<p align="center"><span style="font-family: Tahoma; font-size: xx-small;">بازیابی داده از یک فایل متن        با نام <span lang="en-us">Maghalat.csv</span> </span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p></span></p>
<p><span style="font-size: x-small;"> </span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">Dim</span><span style="font-size: xx-small;"> query2 = </span><span style="color: #0000ff; font-size: xx-small;">From</span><span style="font-size: xx-small;"> line </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> File.ReadAllLines(MapPath(</span><span style="color: #a31515; font-size: xx-small;">&#8220;Maghalat.csv&#8221;</span><span style="font-size: xx-small;">))  _<br />
</span> <span style="color: #0000ff; font-size: xx-small;">Where</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Not</span><span style="font-size: xx-small;"> line.StartsWith(</span><span style="color: #a31515; font-size: xx-small;">&#8220;#&#8221;</span><span style="font-size: xx-small;">)  _<br />
</span> <span style="color: #0000ff; font-size: xx-small;">Let</span><span style="font-size: xx-small;"> parts =  line.Split(</span><span style="color: #a31515; font-size: xx-small;">&#8220;,&#8221;</span><span style="font-size: xx-small;">) _<br />
</span> <span style="color: #0000ff; font-size: xx-small;">Select</span><span style="font-size: xx-small;"> Title = parts(0),  Publisher = parts(1)<br />
</span><span style="color: #0000ff; font-size: xx-small;">For</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Each</span><span style="font-size: xx-small;"> item </span> <span style="color: #0000ff; font-size: xx-small;">In</span><span style="font-size: xx-small;"> query2<br />
ListBox6.Items.Add(item.Title &amp; </span> <span style="color: #a31515; font-size: xx-small;">&#8221; &#8220;</span><span style="font-size: xx-small;"> &amp; item.Publisher)<br />
</span><span style="color: #0000ff; font-size: xx-small;">Next</span></span><span style="font-family: Tahoma; font-size: xx-small;"> item</span></p>
<p><span style="font-size: x-small;"> </span><span style="font-family: Tahoma;"><span style="color: #0000ff; font-size: xx-small;">End</span><span style="font-size: xx-small;"> </span> <span style="color: #0000ff; font-size: xx-small;">Sub</span></span></p>
<p><span style="font-size: x-small;"> </span><span style="color: #0000ff; font-size: xx-small;"> </span><span style="color: #0000ff; font-size: xx-small;"><span style="font-family: Tahoma;">&lt;/</span></span><span style="font-family: Tahoma;"><span style="color: #a31515; font-size: xx-small;">script</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
</span> <span style="color: #008000; font-size: xx-small;">&#8216;<span lang="en-us">====================================================================</span>===</span></span><span style="font-family: Tahoma; color: #008000; font-size: xx-small;"> </span></td>
</tr>
<tr>
<td dir="ltr" width="615" height="10" bgcolor="#f4f4ff"><span style="color: #0000ff; font-size: xx-small;"><span style="font-family: Tahoma;">&lt;</span></span><span style="font-family: Tahoma;"><span style="color: #a31515; font-size: xx-small;">html</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">xmlns</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">head</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">title</span><span style="color: #0000ff; font-size: xx-small;">&gt;</span><span style="font-size: xx-small;"> مثال شماره یک </span><span style="color: #0000ff; font-size: xx-small;">&lt;/</span><span style="color: #a31515; font-size: xx-small;">title</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;/</span><span style="color: #a31515; font-size: xx-small;">head</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">body</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">form</span><span style="font-size: xx-small;"> </span> <span style="color: #ff0000; font-size: xx-small;">id</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;form1&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">div</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">ID</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;ListBox1&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">ID</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;ListBox2&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">ID</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;ListBox3&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">ID</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;ListBox4&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">ID</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;ListBox5&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">ID</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;ListBox6&#8243;</span><span style="font-size: xx-small;"> </span><span style="color: #ff0000; font-size: xx-small;">runat</span><span style="color: #0000ff; font-size: xx-small;">=&#8221;server&#8221;&gt;&lt;/</span><span style="color: #a31515; font-size: xx-small;">asp</span><span style="color: #0000ff; font-size: xx-small;">:</span><span style="color: #a31515; font-size: xx-small;">ListBox</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;/</span><span style="color: #a31515; font-size: xx-small;">div</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;/</span><span style="color: #a31515; font-size: xx-small;">form</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;/</span><span style="color: #a31515; font-size: xx-small;">body</span><span style="color: #0000ff; font-size: xx-small;">&gt;<br />
&lt;/</span><span style="color: #a31515; font-size: xx-small;">html</span><span style="color: #0000ff; font-size: xx-small;">&gt;</span></span><span style="font-family: Tahoma; font-size: xx-small;"> </span></td>
</tr>
</tbody>
</table>
<p></span></div>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">شکل زیر خروجی برنامه  فوق را نشان می دهد . </span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><img class="alignnone size-full wp-image-1869" title="introlinq1" src="http://www.irandevelopers.com/wp-content/uploads/2009/07/introlinq1.jpg" alt="introlinq1 LINQ : تحولی بزرگ در کار با داده  ( بخش اول )" width="387" height="332" /></span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;">شکل  ۲  : دستیابی به منابع داده مختلف با استفاده از فناوری <span lang="en-us">LINQ</span> </span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><strong> <span style="color: #336699;">خلاصه<br />
</span></strong><span lang="en-us">LINQ</span> یک فناوری قدرتمند در زمان کار با داده  است که دستاوردهای  متعددی را برای پیاده کنندگان به ارمغان آورده است : </span></span></p>
<ul dir="rtl"><span style="font-family: Times New Roman; font-size: small;"></p>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">روشی ساده جهت نوشتن <span lang="en-us">query</span> </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">تسریع در پیاده سازی  نرم افزار با توجه به حذف خطاهای زمان اجراء </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">امکان استفاده از  امکاناتی نظیر اشکال زدائی و <span lang="en-us">IntelliSence</span> در زمان پیاده سازی </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">حذف خلاء موجود بین  داده رابطه ای و پیاده سازی شی گراء </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">استفاده از یک گرامر  یکسان جهت نوشتن <span lang="en-us">query</span> صرفنظر از نوع منبع داده </span></li>
<li dir="rtl"> <span style="font-family: Tahoma; font-size: x-small;">افزایش بازدهی و  راندمان برنامه نویسی ، چراکه برنامه نویسان از یک رویکرد یکسان برای نوشتن <span lang="en-us">query</span> و بهنگام سازی داده از طریق زبان  برنامه نویسی   استفاده خواهند کرد . </span></li>
<p></span></ul>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"> </span><span style="font-family: Tahoma;"><span lang="en-us"><span style="font-size: x-small;">LINQ</span></span><span style="font-size: x-small;"> از دو بخش که مکمل یکدیگر می باشند تشکیل شده است : </span></span><span style="font-family: Tahoma; font-size: x-small;"> مجموعه ای از ابزار ها جهت کار با اشیاء ، اسناد <span lang="en-us">XML</span> ،  بانک های اطلاعاتی رابطه ای و سایر نوع های داده و مجموعه ای از ضمایم برای زبان  های برنامه نویسی نظیر <span lang="en-us">VB</span> و <span lang="en-us">#C</span> . در بخش دوم به بررسی هر یک از موارد فوق خواهیم پرداخت.</span></span></p>
<p dir="rtl" align="justify"><span style="font-family: Times New Roman; font-size: small;"><span style="font-family: Tahoma; font-size: x-small;"><br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/linqtahavolparrt880428-1868/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>پارامترها در ADO.NET</title>
		<link>http://www.irandevelopers.com/programming/adonetparameters880105-1727/</link>
		<comments>http://www.irandevelopers.com/programming/adonetparameters880105-1727/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 16:00:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET - دات نت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1727</guid>
		<description><![CDATA[اگر تجربه استفاده از نگارشهای قدیمی تر ASP کلاسیک را داشته باشید احتمالا با ساختار زیر آشنا هستید. این مثال با استفاده از مقادیر بدست آمده از یک فرم، یک عبارت SQL می سازد: MySQL = &#8220;SELECT CustomerID, CompanyName, ContactName, City, Country, Phone &#8221; &#38; _ &#8220;FROM Customers &#8221; &#38; _ &#8220;WHERE &#8221; &#38; _ [...]]]></description>
			<content:encoded><![CDATA[<p class="text">اگر تجربه استفاده از نگارشهای قدیمی تر ASP کلاسیک را داشته باشید  احتمالا با ساختار زیر آشنا هستید. این مثال با استفاده از مقادیر بدست آمده از یک  فرم، یک عبارت SQL می سازد:</p>
<div class="MultiLineCode">MySQL = &#8220;SELECT CustomerID, CompanyName, ContactName,  City, Country, Phone &#8221; &amp; _<br />
&#8220;FROM Customers &#8221; &amp; _<br />
&#8220;WHERE &#8221; &amp;  _<br />
&#8220;Country IN (&#8221; &amp; _<br />
&#8221; &#8216; &#8221; &amp; Request(&#8220;Country1&#8243;) &amp; &#8220;&#8216;, &#8221; &amp;  _<br />
&#8221; &#8216; &#8221; &amp; Request(Country2&#8243;) &amp; &#8220;&#8216;)&#8221; &amp; _<br />
CompanyName &gt;=&#8217;&#8221;  &amp; Request(&#8220;StartRange&#8221;) &#8220;&#8216; &#8221; &amp; _<br />
&#8220;OREDR By CompanyName&#8221;</div>
<p class="text">به علاوه احتمالا می دانید که برای تضمین اجرای SQL خود باید روی  قالب داده کار بیشتری انجام دهید (کارهایی از قبیل جایگزین کردن علامتهای نقل قول  تکی با علامتهای نقل قول دوتایی، سنجش اعتبار انواع داده ها و غیره).</p>
<p class="text">ASP.NET با معرفی عبارتهای SQL پارامتری شده این فرآیند را حذف می  کند. کافی است با استفاده از مجموعه Parameters از کلاس Command پارامترهای مورد  نظر خود را تعریف کنید.</p>
<p class="text">پارامتری کردن کلاس Command چند فایده دارد. به سنجش اعتبار داده ها  کمک می کند، خوانائی کد را تقویت می کند، انعطاف پذیری طراحی شئ گرا را به همراه می  آورد، و از همه مهمتر این که امکان تعریف صریح نوع داده را فراهم می کند. از آنجائی  که اطلاعات نوع داده در کد ASP.NET کامپایل می شود، تعیین نوع داده در زمان اجرا  توسط سرویس دهنده SQL انجام نمی شود، و این باعث افزایش سرعت اجرا می گردد. جهت  آشنائی با کلاس های SQLParameters و SQLParameter به راهنمای مربوطه مراجعه  نمائید.</p>
<p class="text">اکنون با استفاده از این دو کلاس مثال اولیه SQL فوق را بصورت  پارامتری می سازیم. به خاطر داشته باشید که ابتدا فضانام های ضروری را در برنامه  تان وارد کنید. در این مثال خاص ما قصد داریم که از فضانام SqlClient استفاده کنیم.  لذا فضانام های زیر را باید تعریف کنیم:</p>
<div class="MultiLineCode">&lt;%@ Import Namespace=&#8221;System.Data&#8221; %&gt;<br />
&lt;%@  Import Namespace=&#8221;System.Data.SqlClient&#8221; %&gt;</div>
<p class="text">حالا باید متغیرها را تعریف و مقداردهی اولیه کنیم:</p>
<div class="MultiLineCode">Dim MyConnection As SQLConnection<br />
Dim MyCommand As  SQLCommand<br />
Dim MySQL As String</div>
<p class="text">برای ساخت دستور SQL، شناسه های متغیر را درج می کنیم که با علامت @  در جاهای مناسب نشان داده می شوند (یک بار دیگر تاکید می کنیم که برای ساخت مؤثر  برنامه های کاربردی وب مبتنی بر داده ها داشتن درکی کامل از SQL ضروری است). سپس  مقادیر این شناسه ها را با استفاده از متدها و خصوصیتهایی که قبلا توصیف شدند مشخص  می کنیم:</p>
<div class="MultiLineCode">MyConnection = New  SQLConnection(&#8220;server=localhost;uid=sa;pwd=;dsn=Northwind&#8221;)<br />
MySQL = &#8220;SELECT  CustomerID, CompanyName, ContactName, City, Country, Phone &#8221; &amp; _<br />
&#8220;FROM  Customers &#8221; &amp; _<br />
&#8220;WHERE &#8221; &amp; _<br />
&#8220;Country IN (@Country1, @Country2)  AND &#8221; &amp; _<br />
&#8220;CompanyName &gt;= @StartRange &#8221; &amp; _<br />
&#8220;ORDER BY Country,  CompanyName&#8221;</p>
<p>&#8216;Create the SQLCommand using the connection and SQL  string.<br />
MyCommand = New SQLCommand(MySQL, MyConnection)</p></div>
<p class="text">در این لحظه پارامترهای SQL را به مجموعه Parameters از شئ  SQLCommand که نمونه سازی کرده ایم اضافه می کنیم:</p>
<div class="MultiLineCode">&#8216; Specify the name, type and size of the parameters to  add to the collection<br />
MyCommand.Parameters.Add(New SQLParameter(&#8220;@Country1&#8243;,  SQLDataType.VarChar, 50))<br />
MyCommand.Parameters.Add(New  SQLParameter(&#8220;@Country2&#8243;, SQLDataType.VarChar,  50))<br />
MyCommand.Parameters.Add(New SQLParameter(&#8220;@StartRange&#8221;,  SQLDataType.VarChar, 1))</p>
<p>&#8216;Assign values to these parameters&#8230; in many  situations this would be requested from the form object<br />
&#8216;and would not  actually be hard coded as we do in this  example.<br />
MyCommand.Parameters(&#8220;@Country1&#8243;).Value =  &#8220;Germany&#8221;<br />
MyCommand.Parameters(&#8220;@Country1&#8243;).Value =  &#8220;UK&#8221;<br />
MyCommand.Parameters(&#8220;@StartRange&#8221;).Value = &#8220;D&#8221;</p></div>
<p class="text">توجه داشته باشید که فضانام OleDb برای مشخصات نوع داده، خصوصیتی به  نام OleDBType دارد که تا حدودی متفاوت است.</p>
<p class="text">در زیر یک ترکیب نحوی دیگر برای انجام همین کار می آوریم و آن هم  عبارت است از افزودن سه پارامتر به شئ SQLCommand. فرق بین این دو تنها در خوانایی  و ترجیح برنامه نویس است.</p>
<div class="MultiLineCode">Dim pCountry1 As New SQLParameter(&#8220;@Country1&#8243;,  SQLDataType.VarChar, 50)<br />
Dim pCountry2 As New SQLParameter(&#8220;@Country2&#8243;,  SQLDataType.VarChar, 50)<br />
Dim pStartRange As New SQLParameter(&#8220;@StartRange&#8221;,  SQLDataType.VarChar,  1)</p>
<p>MyCommand.Parameters.Add(pCountry1)<br />
MyCommand.Parameters.Add(pCountry2)<br />
MyCommand.Parameters.Add(pStartRange)</p>
<p>pCountry1.Value  = &#8220;Germany&#8221;<br />
pCountry1.Value = &#8220;UK&#8221;<br />
pStartRange.Value = &#8220;D&#8221;</p></div>
<p class="text">برای دیدن نتایج عبارت SQL پارامتری شده، از شئ SQLDataReader و برای  نشان دادن نتایج صفحه نمایش، از کنترل DataGrid استفاده کرده ایم:</p>
<div class="MultiLineCode">MyConnection.Open()<br />
Dim myDR As SQLDataReader =  myCommand.ExecuteReader()<br />
MyDataGrid.DataSource =  myDR<br />
MyDataGrid.DataBind()<br />
MyConnection.Close()</div>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/adonetparameters880105-1727/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>برنامه نویسی بهتر با Typed DataSet &#8211; قسمت اول</title>
		<link>http://www.irandevelopers.com/programming/typeddatasetprogramming880105-1725/</link>
		<comments>http://www.irandevelopers.com/programming/typeddatasetprogramming880105-1725/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 15:58:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET - دات نت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1725</guid>
		<description><![CDATA[در این مقاله برآنیم تا شما را با یکی از قویترین و کارآمدترین روشهای کار با DataSetها آشنا کنیم. بعبارت دیگر می خواهیم شما را با نوع جدیدی از DataSet یعنی Typed DataSet آشنا کنیم و نحوه ایجاد، بکارگیری و فواید آن را با هم ببینیم. بنابراین لازم است که شما قبلا با DataSet و [...]]]></description>
			<content:encoded><![CDATA[<p class="text">در این مقاله برآنیم تا شما را با یکی از قویترین و کارآمدترین  روشهای کار با DataSetها آشنا کنیم. بعبارت دیگر می خواهیم شما را با نوع جدیدی از  DataSet یعنی Typed DataSet آشنا کنیم و نحوه ایجاد، بکارگیری و فواید آن را با هم  ببینیم. بنابراین لازم است که شما قبلا با DataSet و کاربردهای آن آشنا بوده و یا  با آن کار کرده باشید. استفاده از Typed DataSet سبب می شود تا برنامه های شما جامع  تر و بهتر شده و نیز از طرف دیگر برنامه شما اصطلاحاً type safety می  شود.</p>
<p>در این مقاله شما احتمالا به ابزارهای زیر نیاز دارید:</p>
<div class="EnglishParag">• Visual Studio.NET<br />
• Windows 2000<br />
• Visual  C#<br />
• SQL Server 2000</div>
<p class="text">فراموش نکنید که فرض این مقاله بر این است که شما با ADO.NET DataSet  و مفاهیم مربوط به آن کاملاً آشنا هستید.</p>
<p>Typed DataSet برعکس DataSet،  مجموعه ای از کلاس های استاندارد NET Framework. نیست بلکه عبارت است از مجموعه  کلاس هایی که به کمک ابزارهایی در NET Framework. توسط برنامه نویس تولید می شود و  علاوه بر خواص و قابلیتهای موجود در DataSet، دارای متدها، رویداد(event)ها و صفات  اضافه و مختص به خود می باشد.</p>
<p>واضح است که Typed DataSet برای اینکه تمامی  خواص و ویژگیهای DataSet را داشته باشد لازم است که از DataSet مشتق یا به ارث  گرفته شده باشد و همینگونه نیز می باشد. بنابراین Typed DataSet کلاسی است که از  DataSet به ارث گرفته شده است و دارای صفات و متدهای اضافه تری جهت برآورده کردن  اهداف مورد نظر می باشد.</p>
<p>یکی از این اهداف دسترسی آسان و مطمئن به جداول  (table) و فیلدهای داده ای با استفاده از نام آنها می باشد. در DataSet معمولی شما  مجبور هستید که از متدهای اصطلاحاً collection-based و اندیس های تودرتو برای  دستیابی به جداول و محتویات آنها استفاده کنید. همانگونه که می دانید اکثر این  اندیس ها متنی می باشند و اشتباهات تایپی شما تنها در زمان اجرا نمایان خواهند شد و  این مساله می تواند برای شما آزار دهنده بوده و یا باعث ایجاد خطاهای منطقی شود که  رفع آنها ممکن است ساعتها وقت شما را بخود اختصاص دهد.</p>
<p>علاوه بر قابلیت  خواندن بالایی که Typed DataSet به کد برنامه شما می دهد، استفاده از Typed DataSet  سبب می شود تا بتوانید از امکان Intellisense محیط ویرایشگر Visual Studio .NET  بهره برده و کد برنامه شما راحتتر و سریعتر تایپ شود. همچنین Typed DataSet این  امکان را برای شما فراهم می سازد تا کامپایلر مورد استفاده تان نوع فیلدها را در  زمان کامپایل تشخیص داده و در صورت نسبت دادن مقادیر با تایپ های مختلف به یکدیگر،  خطای لازم را اعلام نماید. دقت داشته باشید که اینکار در زمان کامپایل صورت می گیرد  و نه در زمان اجرا و این چیزی نیست جز دسترسی type-safe به DataSet و در نتیجه  افزایش قابلیت اطمینان برنامه شما! به همین دلیل است که به این نوع DataSet  اصطلاحاً Typed DataSet می گوئیم.</p>
<p><strong>تفاوت DataSet و Typed  DataSet</strong></p>
<p>تفاوتهای زیادی از لحاظ شکل نوشتن برنامه گرفته تا کارآیی بین  این دو وجود دارد. در این قسمت این تفاوتها را از لحاظ type-safety و شکل ظاهری با  ذکر دو مثال بررسی می کنیم.</p>
<p>در کد برنامه زیر از DataSet معمولی استفاده شده  است:</p>
<div class="MultiLineCode">String connectionString =  &#8220;server=localhost;Trusted_Connection=yes;database=Northwind&#8221;;</p>
<p>SqlConnection  conn = new SqlConnection(connectionString);</p>
<p>SqlDataAdapter EmployeesDA =  new SqlDataAdapter(&#8220;SELECT * FROM EMPLOYEES;&#8221;, conn);</p>
<p>DataSet ds =  new DataSet();</p>
<p>EmployeesDA.Fill(ds, &#8220;Employees&#8221;);</p>
<p>//Name of  the table is misspelled to Employes<br />
//instead Employees, which is wrong<br />
//  در اینجا نام جدول عمدا اشتباه تایپ شده  است<br />
Console.WriteLine(ds.Tables["Employes"].Rows[0]["FirstName"]);</p>
<p>//LastName  contains one space at the end, which is wrong<br />
// <span dir="rtl">در اینجا عمدا  یک فضای خالی بعد از Lastname آورده شده  است</span><br />
Console.WriteLine(ds.Tables["Employees "].Rows[0]["LastName  "]);</p>
<p>//this is wrong because ReportsTo must be an employeeID,<br />
//an  integer value<br />
// در اینجا اشتباها یک مقدار رشته حرفی به یک متغیر عددی نسبت  داده شده است<br />
ds.Tables["Employees"].Rows[0]["ReportsTo"] = &#8220;Paul&#8221;;</p></div>
<p class="text">می بینید که در کد برنامه بالا مجبور هستیم که از نام جدول و فیلدها  بعنوان اندیس استفاده کنیم که احتمال اشتباه تایپی در آن بسیار زیاد است و ما به  عمد این اشتباهات را انجام داده ایم. همچنین به عمد یک رشته حرفی را به متغیری از  نوع عددی منسوب نموده ایم. هیچیک از این اشتباهات در زمان کامپایل برنامه تشخیص  داده نخواهد شد در عوض این اشتباهات در زمان اجرای برنامه خود را بصورت خطای زمان  اجرا نشان خواهند داد که بهیچ عنوان مطلوب و پذیرفته نیست.</p>
<p>در کد برنامه زیر  از Typed DataSet استفاده شده است:</p>
<div class="MultiLineCode">String connectionString =  &#8220;server=localhost;Trusted_Connection=yes;database=Northwind&#8221;;</p>
<p>SqlConnection  conn = new SqlConnection(connectionString);</p>
<p>SqlDataAdapter EmployeesDA =  new SqlDataAdapter(&#8220;SELECT * FROM EMPLOYEES&#8221;, conn);</p>
<p>//Creating an  Instance of Typed DataSet &#8220;EmployeesTDS&#8221;<br />
EmployeesTDS ds = new  EmployeesTDS();</p>
<p>EmployeesDA.Fill(ds,  &#8220;Employees&#8221;);</p>
<p>Console.WriteLine(ds.Employees[0].FirstName);<br />
Console.WriteLine(ds.Employees[0].LastName);</p>
<p>//this  is wrong because ReportsTo must be an employeeID,<br />
//an integer  value<br />
ds.Employee[0].ReportsTo = &#8220;Paul&#8221;;</p></div>
<p class="text">در این حالت ما از نام جداول و فیلدها بصورت اسامی یک سری صفت تعریف  شده و مشخص استفاده کرده ایم و نه بصورت یک عبارت حرفی که می تواند حاوی هر چیزی  باشد. بعبارت دیگر در این حالت ما اصولاً مجاز به استفاده از نام یا نامهای دیگری  نیستیم و تنها از نامهای تعیین شده برای یک سری صفت یا متد باید استفاده کنیم.  خطاهای موجود در کد برنامه فوق در زمان کامپایل برنامه اعلام می شود و این مزیت  بسیار قابل توجهی نسبت به DataSet معمولی می باشد.</p>
<p>مقایسه کد برنامه های فوق  نشان می دهد که استفاده از Typed DataSet چقدر آسان و راحت بوده و به چه میزان  قابلیت خواندن برنامه ما را بالا برده و سبب می شود تا به آسانی برنامه خود را  مدیریت و نگهداری کنیم.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/typeddatasetprogramming880105-1725/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>نمایش اطلاعات در DataGrid</title>
		<link>http://www.irandevelopers.com/programming/showdataindatagrid880104-1723/</link>
		<comments>http://www.irandevelopers.com/programming/showdataindatagrid880104-1723/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 15:56:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET - دات نت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پایگاه های داده و بانکهای اطلاعاتی]]></category>

		<guid isPermaLink="false">http://www.irandevelopers.com/?p=1723</guid>
		<description><![CDATA[برای برقراری ارتباط با بانک اطلاعاتی ابتدا یک Connection String همانند مثال زیر تعریف کنید: Dim connect As New System.Data.OleDb.OleDbConnection(&#8220;Provider=SQLOLEDB.1;Password=yourpassword;User ID=youruserid;Initial Catalog=yourdatabase;Data Source=yourserver;&#8221;) سپس باید Connection را باز کنیم: connect.Open() برای واکشی همه فیلدها از جدول مورد نظر متغیری به نام Sqlstr از نوع string تعریف می کنیم: Dim SQLstr As String = &#8220;SELECT * [...]]]></description>
			<content:encoded><![CDATA[<p class="text">برای برقراری ارتباط با بانک اطلاعاتی ابتدا یک Connection String  همانند مثال زیر تعریف کنید:</p>
<div class="MultiLineCode">Dim connect As New  System.Data.OleDb.OleDbConnection(&#8220;Provider=SQLOLEDB.1;Password=yourpassword;User  ID=youruserid;Initial Catalog=yourdatabase;Data Source=yourserver;&#8221;)</div>
<p class="text">سپس باید Connection را باز کنیم:</p>
<div class="MultiLineCode">connect.Open()</div>
<p class="text">برای واکشی همه فیلدها از جدول مورد نظر متغیری به نام Sqlstr از نوع  string تعریف می کنیم:</p>
<div class="MultiLineCode">Dim SQLstr As String = &#8220;SELECT * FROM Tablename &#8220;</div>
<p class="text">برای برقرار نمودن ارتباط میان بانک اطلاعاتی وکنترل مورد نظرمان (در  اینجا DataGrid) در اینجا می توان از DataAdaptor و DataSet استفاده کرد.  DataAdaptor بر اساس دستورمتغیر sqlstr و نام Connectionمان تعریف می شود:</p>
<div class="MultiLineCode">Dim myDataAdapter As New  System.Data.OleDb.OleDbDataAdapter(strSQL, connect)<br />
Dim myDataSet As New  DataSet()<br />
myDataAdapter.Fill (myDataSet, &#8220;Tablename&#8221;)</div>
<p class="text">حال زمان تعریف و ارتباط DataGrid با جدولمان است:</p>
<div class="MultiLineCode">DataGrid1.DataSource =  myDataSet.Tables(&#8220;Tablename&#8221;)<br />
DataGrid1.DataBind()</div>
<p class="text">در انتها باید Connection را ببندیم:</p>
<div class="MultiLineCode">connect.Close()</div>
]]></content:encoded>
			<wfw:commentRss>http://www.irandevelopers.com/programming/showdataindatagrid880104-1723/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
