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

یکشنبه 5 مهر 1394

در اینجا قصد داریم توضیحاتی درباره 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

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید