آشنایی با Data Binding در Net.
یکشنبه 20 اردیبهشت 1394data binding یکی از روش های مهم برای اتصال به بانک اطلاعات می باشد که کنترل های موجود در NET. می توان از این روش به بانک اطلاعاتی متصل نمایم .در ادامه با جزئیات این روش بیشتر آشنا میشویم
Data binding یک متد در NET. میباشد که کنترلهای Interface را به بانک اطلاعاتی متصل می کند .بسیاری از سیستمهای مدیریت بانک اطلاتی (DBMS) دسترسی غیر مستقیم به بانک اطلاعاتی دارند. این مشکل برای نحوه آدرس دهی کنترل ها به بانک اطلاعاتی میباشند .
توسعه دهندگان وب برای اتصال به بانک اطلاعاتی از کنترل های سمت سرور استفاده می کنند .
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="BasicGridView" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body> </html>
در قسمت دستورت این کنترل را به بانک اطلاعاتی متصل می کنیم
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Web.Configuration; using System.Data.SqlClient; public partial class BasicGridView : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { string connectionString = WebConfigurationManager.ConnectionStrings["Northwind"].ConnectionString; string selectSQL = "SELECT ProductID, ProductName, UnitPrice FROM Products"; SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(selectSQL, con); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); adapter.Fill(ds, "Products"); GridView1.DataSource = ds; GridView1.DataBind(); } } }
همچنین برای اتصال به بانک اطلاعاتی در web.config تگ مخصوص اتصال را می نویسیم (connection String)
<?Xml version="1.0"?> <Configuration> <ConnectionStrings> <Add name="Northwind" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI"/> </connectionStrings> </configuration>
استفاده از BindManager دو راه آسان برای اتصال به بانک را در اختیار ما می گذارد :
1 - کامپوننت binding manager را به teelbox اضافه میکنیم
2 - کامپوننت Binding Manager به web form اضافه می کنیم
3 - استفاده از قسمت Desig برای اتصال به بانک
4 - هنگامی که می خواهیم برنامه را اجرا کنیم , برای اتصال به بانک , متد BindtoWebForm فراخوانی میشود
5 - برای دریافت اطلاعات از web form , شما باید متد bindFromwebForm را فرا خوانی کنید
protected void UpdateDataBindings() { // create a new collection to store the new bindings found DataBindingInfoCollection newBindings = new DataBindingInfoCollection(); // gets all web controls from the form IReferenceService service = (IReferenceService)GetService( typeof(IReferenceService)); object[] references = service.GetReferences(typeof(Control)); foreach(Control control in references){ // if the control isn't in the page but it's a naming container, skip it if ((control.NamingContainer == null) || (control.NamingContainer.GetType() != typeof(Page))) continue; // get the interface related to data binding IDataBindingsAccessor dba = (IDataBindingsAccessor)control; if (dba.HasDataBindings){ foreach (DataBinding db in dba.DataBindings){ // get the binding information for the control DataBindingInfo dbi = GetBindingInformation(db, control); // if the entry isn't new, set the old values UpdateDataBindingInfo(dbi, bindingManager.DataBindings); newBindings.Add(dbi); } } } // if the data bindings have changed if (CheckBindingChanges(bindingManager.DataBindings, newBindings)){ // notify that the component is going to change RaiseComponentChanging(null); // update the bindings bindingManager.DataBindings.Clear(); foreach(DataBindingInfo dbi in newBindings){ bindingManager.DataBindings.Add(dbi); } // notify that the component has changed RaiseComponentChanged(null, null, null); } }
- ASP.net
- 2k بازدید
- 2 تشکر