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

ذخیره , ویرایش , به روز رسانی و حذف به روش ADO.NET در ASP.Net GridView
0 0
ذخیره , ویرایش , به روز رسانی و حذف به روش ADO.NET در ASP.Net GridView

با سلام ب یکی دیگر ازمقاله ها در asp.net در خدمت شما هستیم .اساسا، این نسخه ی نمایشی، روش اولیه ای را برای انجام داده های INSERT، EDIT، UPDATE و DELETE در  GridView Control با استفاده از شیوه ADO.NET توصیف می کند.

مرحله 1: ایجاد یک جدول پایگاه داده

در این نسخه ی نمایشی، فرض می کنم که شما در حال حاضر یک پس زمینه پایه ای در مورد نحوه ایجاد یک جدول پایگاه داده ساده دارید. در این مثال، از پایگاه داده  به نام SampleDB که دارای جدول مشتریان است استفاده می کنیم و شامل ستون های زیر است:

CustomerID – PK

CompanyName

ContactName

ContactTitle

Address

Country

مرحله 2: راه اندازی خط ارتباطی

      <connectionStrings>

            <add name="DBConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SampleDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

      </connectionStrings>

مرحله 3: راه اندازی GUI

فقط برای سادگی این نسخه ی نمایشی، GUI را مانند زیر تنظیم میکنیم :

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>GridView Data Manipulation</title>

</head>

<body>

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

    <div>

        <table cellpadding="0" cellspacing="0">

            <tr>

                <td style="width: 100px; height: 19px;">

                    Company ID</td>

                <td style="width: 100px; height: 19px;">

                    Company</td>

                <td style="width: 100px; height: 19px;">

                    Name</td>

                <td style="width: 100px; height: 19px;">

                    Title</td>

                <td style="width: 100px; height: 19px;">

                    Address</td>

                <td style="width: 100px; height: 19px;">

                    Country</td>

            </tr>

            <tr>

                <td style="width: 100px">

                    <asp:TextBox ID="TextBox1" runat="server"/></td>

                <td style="width: 100px">

                    <asp:TextBox ID="TextBox2" runat="server"/></td>

                <td style="width: 100px">

                    <asp:TextBox ID="TextBox3" runat="server"/></td>

                <td style="width: 100px">

                    <asp:TextBox ID="TextBox4" runat="server"/></td>

                <td style="width: 100px">

                    <asp:TextBox ID="TextBox5" runat="server"/></td>

                <td style="width: 100px">

                    <asp:TextBox ID="TextBox6" runat="server"/></td>

                <td style="width: 100px">

                    <asp:Button ID="Button1" runat="server" Text="Add New" OnClick="Button1_Click" /></td>

            </tr>

        </table>

       

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" ShowFooter="true">

        <Columns>

            <asp:BoundField DataField="CustomerID" HeaderText="ID" ReadOnly="true"/>

            <asp:BoundField DataField="CompanyName" HeaderText="Company"/>

            <asp:BoundField DataField="ContactName" HeaderText="Name"/>

            <asp:BoundField DataField="ContactTitle" HeaderText="Title" />

            <asp:BoundField DataField="Address" HeaderText="Address"/>

            <asp:BoundField DataField="Country" HeaderText="Country"/>

        </Columns>

        </asp:GridView>

    </div>

    </form>

</body>

</html>

توجه:

فیلد CustomerID را برای ReadOnly تنظیم میکنیم تا فیلد ویرایش نشود.

مرحله 4: اتصال GridView با داده ها

 کد زیر برای اتصال GridView هستند.

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            BindGridView();

        }

    }

 

    private string GetConnectionString()

    {

        return System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;

    }

 

    #region Bind GridView

    private void BindGridView()

    {

        DataTable dt = new DataTable();

        SqlConnection connection = new SqlConnection(GetConnectionString());

        try

        {

            connection.Open();

            string sqlStatement = "SELECT Top(10)* FROM Customers";

            SqlCommand cmd = new SqlCommand(sqlStatement, connection);

            SqlDataAdapter sqlDa = new SqlDataAdapter(cmd);

 

              sqlDa.Fill(dt);

              if (dt.Rows.Count > 0)

              {

                GridView1.DataSource = dt;

                GridView1.DataBind();

              }

        }

        catch (System.Data.SqlClient.SqlException ex)

        {

                string msg = "Fetch Error:";

                msg += ex.Message;

                throw new Exception(msg);

        }

        finally

        {

            connection.Close();

        }

    }

    #endregion

}

فهمیدید که چگونه  چگونه GridView را به داده های پایگاه داده مرتبط می کنیم. بنابراین  یک داده جدید در GridViewاضافه  میکنید .
مرحله 5: اضافه کردن اطلاعات جدید در GridView

همانطور که در مرحله 2 متوجه شده اید، ما شش TextBox و یک دکمه را در فرم وب اضافه کردیم تا بتوانیم اطلاعات را در آنجا تایپ کنیم و آنها را در پایگاه داده وارد کنیم. اکنون یک روش برای اجرای Update یا Insert ایجاد کنید.

در اینجا کد زیر روش قرار دادن و به روز رسانی در کد پشت است :

#region Insert New or Update Record

    private void UpdateOrAddNewRecord(string ID, string Company, string Name, string Title, string Address, string Country, bool isUpdate)

    {

        SqlConnection connection = new SqlConnection(GetConnectionString());

        string sqlStatement = string.Empty;

 

        if (!isUpdate)

        {

            sqlStatement = "INSERT INTO Customers"+

"(CustomerID,CompanyName,ContactName,ContactTitle,Address,Country)" +

"VALUES (@CustomerID,@CompanyName,@ContactName,@ContactTitle,@Address,@Country)";

        }

        else

        {

            sqlStatement = "UPDATE Customers" +

                           "SET CompanyName = @CompanyName,

                           ContactName = @ContactName," +

                           "ContactTitle = @ContactTitle,Address = 

                           @Address,Country = @Country" +

                           "WHERE CustomerID = @CustomerID,";

        }

        try

        {

            connection.Open();

            SqlCommand cmd = new SqlCommand(sqlStatement, connection);

            cmd.Parameters.AddWithValue("@CustomerID", ID);

            cmd.Parameters.AddWithValue("@CompanyName", Company);

            cmd.Parameters.AddWithValue("@ContactName", Name);

            cmd.Parameters.AddWithValue("@ContactTitle", Title);

            cmd.Parameters.AddWithValue("@Address", Address);

            cmd.Parameters.AddWithValue("@Country", Country);

            cmd.CommandType = CommandType.Text;

            cmd.ExecuteNonQuery();

        }

        catch (System.Data.SqlClient.SqlException ex)

        {

            string msg = "Insert/Update Error:";

            msg += ex.Message;

            throw new Exception(msg);

 

        }

        finally

        {

            connection.Close();

        }

    }

    #endregion

UpdateOrAddNewRecord یک روشی است که هفت پارامتر را شامل می شود . شش مورد از این پارامترها اساسا از مقادیر TextBox که در صفحه وارد شدند، می آیند. آخرین پارامتر یک مقدار بولین است که دراین روش اگر Insert (false) یا Update (true) بود. پیش فرض درست است

در اینجا کد زیربرای فراخوانی روش UpdateOrAddNewRecord در رویداد Button_Click و انتقال پارامترهای مربوطه مورد نیاز است:

    protected void Button1_Click(object sender, EventArgs e)

    {

        UpdateOrAddNewRecord(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, false);

        //Re Bind GridView to reflect changes made

        BindGridView();

    }

همانطور که در بالا می بینید، ما دوباره روش BindGridView  را برای نشان دادن تغییرات ایجاد شده و نمایش داده های جدید اضافه شده در GridView را فراخوانی کردیم. خروجی زیر را با علامت قرمز مشاهده کنید.

مرحله 6: ویرایش و به روز رسانی رکوردها در GridView

یکی از چیزهای خوب در مورد GridView این است که یک دکمه CommandField ساخته شده است که به ما این امکان را می دهد اقدامات خاصی نظیر ویرایش، به روز رسانی، حذف و انتخاب داده GridView را انجام دهیم.

برای اضافه کردن آن فیلدهای دستور ذکر شده در GridView، می توانید از این چند مرحله زیر استفاده کنید:

1        تبدیل به Design View

2        راست کلیک بر روی GridView و انتخاب -> نمایش برچسب هوشمند -> اضافه کردن ستون های جدید

3        انتخاب CommandField در لیست

4        گزینه های حذف و ویرایش / بروز رسانی را بررسی کنید و سپس OK کنید

همانطور که می بینید Edit و Delete CommandField به طور خودکار در آخرین ستون GridView اضافه می شود. حالا ما می توانیم کدهای ما را برای ویرایش و به روز رسانی اطلاعات در GridView شروع کنیم.

برای انجام ویرایش و به روز رسانی در GridView ما باید از سه رویداد (GridView_RowEditing، GridView_RowCancelingEdit، GridView_RowUpdating) استفاده کنیم. برای کسانی که در مورد نحوه تولید رویدادهای در GridView نمی دانند، می توانید این مراحل زیر را دنبال کنید:

1        تبدیل به Design View در طراح ویژوال استودیو

2        بر روی GridView کلیک کنید

3        به قسمت Property GridView بروید و سپس به Properties رویداد بروید

4        از آنجا می توانید لیست رویدادها را از جمله این سه رویداد ذکر شده را در بالا پیدا کنید

5        دوبار کلیک بر روی آن برای تولید رویداد پردازنده

6        سپس کدها را بنویسید

کد برای هر رویداد است:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

{

        GridView1.EditIndex = e.NewEditIndex; // turn to edit mode

        BindGridView(); // Rebind GridView to show the data in edit mode

}

 

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

{

        GridView1.EditIndex = -1; //swicth back to default mode

        BindGridView(); // Rebind GridView to show the data in default mode

}

 

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

{

        //Accessing Edited values from the GridView

        string id = GridView1.Rows[e.RowIndex].Cells[0].Text; //ID

        string company = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text; //Company

        string name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text; //Name

        string title = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text; //Title

        string address = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text; //Address

        string country = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text; //Country

 

        UpdateOrAddNewRecord(id,company,name,title,address,country,true); // call update method

        GridView1.EditIndex = -1;

        BindGridView(); // Rebind GridView to reflect changes made

}

مرحله 7: حذف را در GridView انجام دهید

از آنجا که ما از دکمه ساخته شده در Delete CommandField در GridView استفاده می کنیم، می توانیم از رویداد GridView_RowDeleting برای حذف سطر خاص در GridView استفاده کنیم.

در اینجا کد زیر برای روش حذف است:

#region Delete Record

    private void DeleteRecord(string ID)

    {

        SqlConnection connection = new SqlConnection(GetConnectionString());

        string sqlStatement = "DELETE FROM Customers WHERE CustomerID = @CustomerID";

        try

        {

            connection.Open();

            SqlCommand cmd = new SqlCommand(sqlStatement, connection);

            cmd.Parameters.AddWithValue("@CustomerID", ID);

            cmd.CommandType = CommandType.Text;

            cmd.ExecuteNonQuery();

        }

        catch (System.Data.SqlClient.SqlException ex)

        {

            string msg = "Deletion Error:";

            msg += ex.Message;

            throw new Exception(msg);

 

        }

        finally

        {

            connection.Close();

        }

    }

#endregion

در اینجاکد برای فراخوانی روش حذف در رویداد RowDeleting است

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

   string id = GridView1.Rows[e.RowIndex].Cells[0].Text; get the id of the selected row

   DeleteRecord(id);//call delete method

   BindGridView();//rebind grid to reflect changes made

}


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

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