مقدمه :
در بخش های قبلی انواع عملیات های داده ای از جمله انتخاب ، ویرایش و فیلترینگ داده را شرح دادیم . از عملیات های مهم دیگری که بایستی در یک پایگاه داده انجام شود ، وارد کردن اطلاعات و داده های جدید ( 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 به بخش استفاده از پارامترهای ۱ , ۲ بروید .
پس از تعیین دستور InsertCommand و مجموعه پارامترهای مورد نیاز برای آن ، باید کنترل هایی که قرار است مقادیر جدید را به صورت ورودی از کاربر دریافت می کنند را بر روی صفحه قرار داد . همانطور که گفتم این کنترل می توانند انواع گوناگونی داشته باشند ، از جمله کادر های متن و یا کادرهای انتخابی . باید به تعداد لازم و با توجه به نوع پارامترها ، کننرل های مناسب را بر روی صفحه قرار داده و آنها را به پارمترهای مرتبط شان متصل کنید .
مرحله بعدی فراخوانی متد ( ) Insert کنترل SqlDataSource است . این متد است که در هنگام فراخوانی خود ، دستورات تعیین شده برای وارد شدن اطلاعات به منبع داده ای را اجرا می کند . برای فراخوانی این متد می توان از روش های مختلفی استفاده کرد ، مثلا کد فراخوانی آن را در رویداد کلیک یک دکمه فرمان ( کنترل < asp:Button > قرار داد و … .
برای فراخوانی متد ( ) Insert یک کنترل SqlDataSource می توان از ساختار کلی زیر استفاده کرد :
SqlDataSourceنام کنترل .Insert ( ) ; |
مثال : در مثال زیر ابتدا یک کنترل SqlDataSourec را به جدول Students در پایگاه داده دانشگاه متصل ساخته و سپس توسط یک دستور Insert موجود در خاصیت InsertCommand ، کنترل را برنامه ریزی کرده ایم که مقدار ۴ فیلد اطلاعاتی شماره ( ID ) ، نام ( Name ) ، نام خانوادگی ( Family ) و نمره ( Grade ) یک دانشجو جدید را از طریق ۴ کنترل کادر متن مرتبط دریافت کرده و آنها را به ۴ پارامتر طراحی شده مرتبط به ترتیب ( 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( ) ; |