وارد کردن اطلاعات جديد با کنترل SqlDataSource
مقدمه :
در بخش های قبلی انواع عمليات های داده ای از جمله انتخاب ، ويرايش و فيلترينگ داده
را شرح داديم . از عمليات های مهم ديگری که بايستی در يک پايگاه داده انجام شود ، وارد
کردن اطلاعات و داده های جديد ( Insert Data ) و يا حذف برخی از اطلاعات مورد نظر (
Delete Data ) است . پايگاه های داده به مرور زمان تغيير کرده و گسترش می یابند و نياز
است تا اطلاعات جديد به آنها وارد شوند . همچنين برخی از اطلاعات به مرور زمان بی اعتبار
شده . بايد حذف شوند ، اينجاست که کاربر به مکانيزم هايي برای وارد کردن اطلاعات جديد
و يا حذف اطلاعات قديمی نياز دارد .
در اين بخش با ارائه مثال هايي نحوه انجام عمليات های ورود و حذف داده در يک پايگاه
داده را با استفاده از کنترل SqlDataSource را آموزش خواهيم داد . برای جلوگيری از
تکرار برخی مطالب مشترک با قسمت های قبلی ( از جمله نحوه تعريف پارامترها در کنترل های داده و انواع متغيرهای مورد استفاده
در صفحات ASP.NET ) در اين بخش به طور خلاصه تر به ارائه مطالب پرداخته و توصيه
می کنم حتما ابتدا بخش های قبلی را مطالعه کرده و سپس مطالب اين بخش را بخوانيد .
وارد کردن اطلاعات جديد در پايگاه داده با استفاده از کنترل SqlDataSource :
کنترل SqlDataSource برای انجام عمليات ورود داده از يک دستور SQL از نوع Insert که
در خاصيت InsertCommand آن تعيين می شود ، استفاده می کند . محتويات و تعيين دستور
Insert مورد استفاده در اين خاصيت بستگی به پايگاه داده و ساختار و نوع ساختمان فيلد
ها و رکوردهای جداول آن داشته و اينکه مقادير جديد برای وارد شدن بايد از طريق چه پارامترها
و منابعی تامين شوند . برای آشنايي با ساختار دستور Insert در زبان SQL به بخش آموزش دستور Insert در زبان SQL برويد .
بنابراين برای انجام عمليات ورود داده ابتدا بايتسی دستور Insert را در خاصيت InsertCommand
کنترل به طور کامل تعيين کنيد . دستور تعيين شده برای اين خاصيت هر بار که متد ( )
Insert کنترل SqlDataSource فراخوانی شود ، اجرا می گردد . نحوه فراخوانی اين متد را
کمی جلوتر توضيح خواهم داد .
گام بعدی تعيين پارامترهايي است که بايد مقادير جديد را برای ورود به جدول ، تامين
کنند . اصولا در اين حالت بايستی از يک يا چند کنترل کادر متن ( TextBox ) , و يا ساير
کنترل های ممکن ديگر استفاده کرده تا کاربر بتواند مقادير جديدی که می خواهد به جدول
اصافه کند را در اين کادرها وارد کرده و سپس عمليات Insert داده را انجام دهد .
برای مثال فرض کنيد که در جدول Students در پايگاه داده دانشگاه که در بخش های قبل
استفاده کرديم ، کاربر بخواهد مشخصات نام و نام خانوادگی دانشجویان جدیدی که به دانشگاه
آمده اند را به جدول بانک اطلاعاتی اضافه کند . در اين حالت کاربر بايد ابتدا نام ونام
خانوادگی دانشجويان جديد را در کنترل هایی مثل کادر متن ( کنترل < asp:TextBox >
) وارد کرده و سپس اين مقادير جديد دريافتی را به عنوان پارامتر به کنترل SqlDataSource
اراسال کند .
پار امترهای مورد استفاده در دستور InsertCommand را بايد در مجموعه < InsertParameters
> کنترل که در درون تگ آن تعيين می شود ، قرار داد . در اين مجموعه بايستی به ازای
هر عدد پارامتر استفاده شده ، يک تگ پارامتر را که شامل خصوصيات ، مکان و نحوه تعيين
مقدار ، نوع و ... آن می باشد را قرار داد . برای دريافت اطلاعات راجع به نحوه تعيين
و استفاده و همچنين انواع پارامترهای موجود در برنامه های ASP.NET به بخش
استفاده از پارامترهای 1 , 2 برويد .
پس از تعيين دستور InsertCommand و مجموعه پارامترهای مورد نياز برای آن ، بايد کنترل
هايي که قرار است مقادير جديد را به صورت ورودی از کاربر دريافت می کنند را بر روی
صفحه قرار داد . همانطور که گفتم اين کنترل می توانند انواع گوناگونی داشته باشند ،
از جمله کادر های متن و يا کادرهای انتخابی . بايد به تعداد لازم و با توجه به نوع
پارامترها ، کننرل های مناسب را بر روی صفحه قرار داده و آنها را به پارمترهای مرتبط
شان متصل کنيد .
مرحله بعدی فراخوانی متد ( ) Insert کنترل SqlDataSource است . اين متد است که در هنگام
فراخوانی خود ، دستورات تعيين شده برای وارد شدن اطلاعات به منبع داده ای را اجرا می
کند . برای فراخوانی اين متد می توان از روش های مختلفی استفاده کرد ، مثلا کد فراخوانی
آن را در رويداد کليک يک دکمه فرمان ( کنترل < asp:Button > قرار داد و ... .
برای فراخوانی متد ( ) Insert يک کنترل SqlDataSource می توان از ساختار کلی زير استفاده
کرد :
|
Syntax
|
SqlDataSourceنام کنترل .Insert ( ) ;
مثال : SqlControl1.Insert ( ) ;
|
مثال : در مثال زير ابتدا يک کنترل SqlDataSourec را به جدول Students
در پايگاه داده دانشگاه متصل ساخته و سپس توسط يک دستور Insert موجود در خاصيت InsertCommand
، کنترل را برنامه ريزی کرده ايم که مقدار 4 فيلد اطلاعاتی شماره ( ID ) ، نام ( Name
) ، نام خانوادگی ( Family ) و نمره ( Grade ) يک دانشجو جديد را از طريق 4 کنترل کادر
متن مرتبط دريافت کرده و آنها را به 4 پارامتر طراحی شده مرتبط به ترتيب ( Num , UName
, UFamily , UMajor ) ارسال کند تا در دستور Insert مورد استفاده قرار بگيرد . سپس
متد ( ) Insert کنترل SqlDataSource به وسيله کليک بر روی کنترل دکمه فرمان ( <
asp:Button < ) و تحريک رويداد کليک آن ، اجرا شده و عمليات ورود اطلاعات به پايگاه
داده را انجام خواهد داد .
برای کارایی اين مثال بايد ابتدا اطلاعات دانشجوی جديد مورد نظر خود را در کنترل های
کادر متن وارد کرده و سپس بر روی دکمه فرمان Insert Data کليک کنيد :
< asp:SqlDataSource runat="server" ID="SqlData1"
ConnectionString="data source = Developer-PC; initial catalog = UniverCity ; Integrated
Security = True " ProviderName="System.Data.SqlClient" SelectCommand="Select
* From Students "
InsertCommand="Insert Into Students ( ID , Name , Family , Major ) Values ( @Num
, @UName , @UFamily , @UMajor )">
<InsertParameters>
<asp:ControlParameter ControlID="txtName"
Name="UName" PropertyName="Text" />
<asp:ControlParameter ControlID="txtFamily"
Name="UFamily" PropertyName="Text" />
<asp:ControlParameter ControlID="txtNum"
Name="Num" PropertyName="Text" />
<asp:ControlParameter ControlID="txtMajor"
Name="UMajor" PropertyName="Text" />
</InsertParameters>
</asp:SqlDataSource>
<asp:TextBox runat="server" ID="txtName"
Width="80px" />
<asp:TextBox runat="server" ID="txtFamily" Width="80px"
/>
<asp:TextBox runat="server" ID="txtNum" Width="80px"
/>
<asp:TextBox runat="server" ID="txtMajor" Width="80px"
/>
<asp:Button runat="server" ID="Btn" Text="Insert Data"
OnClick="Btn_Click" />
|
نکته : همچنين بايد کد فراخوانی متد ( ) Insert کنترل SqlDataSource
را در رويداد کليک دکمه فرمان Btn در فايل کد صفحه ASP.NET خود قرار دهيد :
protected void Btn_Click (object source, EventArgs e)
{
SqlData1.Insert( ) ;
}
|