توضیحات و دانلود

اتصال کنترل های DropDownListو labelو texbox به پایگاه داده در ASP.Net
0 0
اتصال کنترل های DropDownListو labelو texbox به پایگاه داده در ASP.Net

 با سلام در این مقاله اتصال سه کنترلDropDownList و labelو texbox به پایگاه داده در ASP.Net را توضیح خواهیم داد

با یک برنامه کوچک توضیح خواهیم داد که جزئیات مشتری بر مبنای شناسه مشتری صورت گیرد. برای این مقاله از پایگاه NorthWind SQL Server استفاده میکنیم که می تواند از اینجا دانلود شود. پایگاه داده NorthWind

رشته اتصال

<connectionStrings>

  <add name="conString" connectionString="Data Source=.\SQLEXPRESS;

                 database=Northwind;Integrated Security=true"/>

</connectionStrings >

فضاهای نام

برای اجرای این برنامه، باید فضای نامهای زیر را وارد کنید

C #

using System.Data;

using System.Data.SqlClient;

using System.Configuration;

VB.Net

Imports System.Data

Imports System.Data.SqlClient

Imports System.Configuration

طرح Front End

در قسمت جلویی  سه کنترل کننده ASP.Net را قرار داده ایم

1. DropDownList

2. برچسب

3. TextBox

در زیر کد HTML است

<form id="form1" runat="server">

<div>

    Select Customer ID

    <asp:DropDownList ID="ddlCustomers" runat="server" AutoPostBack = "true"

          OnSelectedIndexChanged="ddlCustomers_SelectedIndexChanged">

    </asp:DropDownList>

    <br />

    <br />

    <br />

    <p>---Customer Details---</p>

    <hr />

    City :

    <asp:TextBox ID="txtCity" runat="server"></asp:TextBox>

    <br />

    Country :

    <asp:Label ID="lblCountry" runat="server" Text=""></asp:Label>

</div>

</form>

 یک رویداد OnSelectedIndexChanged برای DropDownList اضافه کردیم و همچنین AutoPostBack = "true" را که مهمترین گام است تنظیم کردیم  اگر اضافه نکنید که رویداد OnSelectedIndexChanged صورت نمی گیرد

داده اتصال  DropDownList

DropDownList یک کنترل Databound است بنابراین یک منبع داده می تواند به طور مستقیم به آن اختصاص داده شود. منبع داده می تواند DataReader یا DataTable یا DataSet با استفاده از ADO.Net باشد. هنگامی که منبع داده اختصاص داده می شود، شما باید فیلد متن و فیلد  DropDownList را مشخص کنید. در  کد زیر،  یک DropDownList لازم است. رویداد بارگذاری صفحه از صفحه وب با استفاده از SQL DataReader است.

C #

protected void Page_Load(object sender, EventArgs e)

{

    if (!IsPostBack)

    {

        ddlCustomers.Items.Add(new ListItem("--Select Customer--", ""));

        ddlCustomers.AppendDataBoundItems = true;

        String strConnString = ConfigurationManager

             .ConnectionStrings["conString"].ConnectionString;

        String strQuery = "select CustomerID, ContactName from Customers";

        SqlConnection con = new SqlConnection(strConnString);

        SqlCommand cmd = new SqlCommand();

        cmd.CommandType = CommandType.Text;

        cmd.CommandText = strQuery;

        cmd.Connection = con;

        try

        {

            con.Open();

            ddlCustomers.DataSource = cmd.ExecuteReader();

            ddlCustomers.DataTextField = "ContactName";

            ddlCustomers.DataValueField = "CustomerID";

            ddlCustomers.DataBind();

        }

        catch (Exception ex)

        {

            throw ex;

        }

        finally

        {

            con.Close();

            con.Dispose();

        }

    }

}

VB.Net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

 If Not IsPostBack Then

   ddlCustomers.Items.Add(New ListItem("--Select Customer--", ""))

   ddlCustomers.AppendDataBoundItems = True

   Dim strConnString As String = ConfigurationManager _

                     .ConnectionStrings("conString").ConnectionString

   Dim strQuery As String = "select CustomerID, ContactName from Customers"

   Dim con As New SqlConnection(strConnString)

   Dim cmd As New SqlCommand()

   cmd.CommandType = CommandType.Text

   cmd.CommandText = strQuery

   cmd.Connection = con

   Try

     con.Open()

     ddlCustomers.DataSource = cmd.ExecuteReader()

     ddlCustomers.DataTextField = "ContactName"

     ddlCustomers.DataValueField = "CustomerID"

     ddlCustomers.DataBind()

   Catch ex As Exception

     Throw ex

   Finally

     con.Close()

     con.Dispose()

   End Try

  End If

End Sub

در بالا  در جدول مشتری پایگاه NorthWind و بازیابی CustomerID و ContactName از تمام مشتریان یک پرس وجو را انتخاب می کنیم و  آن رابه کنترل DataTextField در ASP.Net اتصال می دهیم. DropDownList  را به عنوان ContactName و DataValueField به عنوان CustomerID تنظیم می کنیم.

برچسب اتصال داده و TextBox

برچسب های ASP.Net و TextBox کنترل های databound نیستند، بنابراین ما نمی توانیم به طور مستقیم منابع داده ها را به آنها اختصاص دهیم؛ از این رو ما باید از DataReader ADO.Net استفاده کنیم. در رویداد OnSelectedIndexChanged از DropDownList دریافت جزئیات مربوط به مشتری کاربر با عبور از CustomerID به Query انتخاب شده است.به کد زیر را مراجعه کنید

C #

protected void ddlCustomers_SelectedIndexChanged(object sender, EventArgs e)

{

    String strConnString = ConfigurationManager

                           .ConnectionStrings["conString"].ConnectionString;

    String strQuery = "select City, Country from Customers where" +

                      " CustomerID = @CustomerID";

    SqlConnection con = new SqlConnection(strConnString);

    SqlCommand cmd = new SqlCommand();

    cmd.Parameters.AddWithValue("@CustomerID", ddlCustomers.SelectedItem.Value);     

    cmd.CommandType = CommandType.Text;

    cmd.CommandText = strQuery;

    cmd.Connection = con;

    try

    {

        con.Open();

        SqlDataReader sdr= cmd.ExecuteReader();

        while (sdr.Read())

        {

            txtCity.Text = sdr[0].ToString();

            lblCountry.Text = sdr["Country"].ToString(); 

        }

    }

    catch (Exception ex)

    {

        throw ex;

    }

    finally

    {

        con.Close();

        con.Dispose();

    }

}

VB.Net

Protected Sub ddlCustomers_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)

  Dim strConnString As String = ConfigurationManager _

             .ConnectionStrings("conString").ConnectionString

  Dim strQuery As String = "select City, Country from Customers where" _

                           & " CustomerID = @CustomerID"

  Dim con As New SqlConnection(strConnString)

  Dim cmd As New SqlCommand()

  cmd.Parameters.AddWithValue("@CustomerID", ddlCustomers.SelectedItem.Value)

  cmd.CommandType = CommandType.Text

  cmd.CommandText = strQuery

  cmd.Connection = con

  Try

      con.Open()

      Dim sdr As SqlDataReader = cmd.ExecuteReader()

      While sdr.Read()

        txtCity.Text = sdr(0).ToString()

        lblCountry.Text = sdr("Country").ToString()

      End While

  Catch ex As Exception

      Throw ex

  Finally

      con.Close()

      con.Dispose()

  End Try

End Sub

بر این اساس  TextBox و Label را با استفاده از کد زیر مرتبط میکنیم

C #

txtCity.Text = sdr[0].ToString();

lblCountry.Text = sdr["Country"].ToString(); 

VB.Net

txtCity.Text = sdr(0).ToString()

lblCountry.Text = sdr("Country").ToString()

 

دو راه وجود دارد که می توانید مقدار را از DataReader برای برچسب انجام دهیم.

یکی با استفاده از شاخص ستون  برای TextBox و دیگر استفاده از نام ستون

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

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

لینک های دانلود

ارسال نظر
ارسال پیام به :