تغییردستور SelectCommand به صورت پویا در زمان اجرا

در اینجا قصد داریم توضیحاتی درباره SelectCommand از SqlDataSource و تغییرات پویای(Dynamically change) آن در زمان اجرا ارائه دهیم . به منظور تغییر SelectCommand در زمان اجرا ، SqlDtaSource به پذیرفته شدن کد از Code Behind در ASP.Net نیاز دارد .

تغییردستور SelectCommand به صورت پویا در زمان اجرا

در اینجا قصد داریم توضیحاتی درباره SelectCommand  از SqlDataSource و تغییرات پویای (Dynamically change) آن در زمان اجرا ارائه دهیم . به منظور تغییر SelectCommand در زمان اجرا ،  SqlDataSource به پذیرفته شدن کد از  Code Behind  در ASP.Net  نیاز دارد .

در این قسمت توضیحات را با یک مثال روشن میکنیم .

برای این مثال از دیتابیس Northwind و جدول Customers استفاده میکنیم . برای دانلود دیتابیس به لینک زیر بروید .

Download Northwind Database

 صفحه HTML یک Gridview با مشخصاتو فیلدهای زیر شامل میشود .

<asp:GridView ID="GridView1" runat="server" CssClass="Grid" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="ContactName" HeaderText="Customer Name" />
        <asp:BoundField DataField="City" HeaderText="City" />
        <asp:BoundField DataField="Country" HeaderText="Country" />
        <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" />
    </Columns>
</asp:GridView>

 

Connection String را در web.config به صورت زیر قرار میدهیم.

<connectionStrings>
    <addname="conString"connectionString="Data Source=.\SQL2005;Initial Catalog=northwind;User id = user;password=xxx"/>
</connectionStrings>

در کد زیر ارتباط SqlDataSource با Gridview است .

SqlDataSource به صورت پویا در زمان اجرا به رویداد Page_Load اضافه می شود .  

پارامترهای زیر باید درSqlDataSource تنظیم شوند .

1.ConnectionString : کانکشن به دیتابیس Northwind

2. SelectCommand : کوئری های sql برای اجرا شدن

کد C# به صورت زیر خواهد بود :

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        SqlDataSource SqlDataSource1 = new SqlDataSource();
        SqlDataSource1.ID = "SqlDataSource1";
        this.Page.Controls.Add(SqlDataSource1);
        SqlDataSource1.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
        SqlDataSource1.SelectCommand = "SELECT top 10 ContactName, City, Country, PostalCode from Customers";
        GridView1.DataSource = SqlDataSource1;
        GridView1.DataBind();
    }
}

 

کد VB به صورت زیر خواهد بود :

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim SqlDataSource1 As New SqlDataSource()
        SqlDataSource1.ID = "SqlDataSource1"
        Me.Page.Controls.Add(SqlDataSource1)
        SqlDataSource1.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("conString").ConnectionString
        SqlDataSource1.SelectCommand = "SELECT top 10 ContactName, City, Country, PostalCode from Customers"
        GridView1.DataSource = SqlDataSource1
        GridView1.DataBind()
    End If
End Sub

 

فایل های ضمیمه