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

استفاده از GridView EmptyDataTemplate و FooterTemplate در اضافه کردن رکورد به پایگاه داده با ASP.Net
0 0
استفاده از GridView EmptyDataTemplate و FooterTemplate در اضافه کردن رکورد به پایگاه داده با ASP.Net

با سلام در این مقاله توضیح خواهیم داد که چگونه رجیسترهای جدید را در پایگاه داده SQL Server با استفاده از الگو خالی داده شده GridView ASP.Net خاتمه دهید.
بانک اطلاعاتی
در تصویر زیر، ساختار جدول پایگاه داده ای که سوابق مشتری را ذخیره می کند، نمایش داده می شود

کد HTML
در زیر کدHTML از کنترل GridView است

<asp:GridView ID="GridView1" runat="server" Width="550px" AutoGenerateColumns="false"
    AlternatingRowStyle-BackColor="#C2D69B" HeaderStyle-BackColor="green" ShowFooter="true">
    <Columns>
        <asp:TemplateField HeaderText="Customer Name">
            <ItemTemplate>
                <%# Eval("CustomerName") %>
            </ItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="txtCustomerName" runat="server" />
            </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Company Name">
            <ItemTemplate>
                <%# Eval("CompanyName") %>
            </ItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="txtCompanyName" runat="server" />
            </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="City">
            <ItemTemplate>
                <%# Eval("City") %>
            </ItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="txtCity" runat="server"></asp:TextBox>
            </FooterTemplate>
        </asp:TemplateField>
            <asp:TemplateField>
            <ItemTemplate>
            </ItemTemplate>
            <FooterTemplate>
                <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="Add" CommandName = "Footer" />
            </FooterTemplate>
        </asp:TemplateField>
    </Columns>
    <AlternatingRowStyle BackColor="#C2D69B" />
    <EmptyDataTemplate>
        <tr style="background-color: Green;">
            <th scope="col">
                Customer Name
            </th>
            <th scope="col">
                Company Name
            </th>
            <th scope="col">
                City
            </th>
            <th scope="col">
                   
            </th>
        </tr>
        <tr>
            <td>
                <asp:TextBox ID="txtCustomerName" runat="server" />
            </td>
            <td>
                <asp:TextBox ID="txtCompanyName" runat="server" />
            </td>
            <td>
                <asp:TextBox ID="txtCity" runat="server" />
            </td>
            <td>
                <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="Add" CommandName = "EmptyDataTemplate" />
            </td>
        </tr>
    </EmptyDataTemplate>
</asp:GridView>

در بالا 3 ستون GridView ، نام مشتری، نام شرکت و شهر را نمایش می دهد. جعبه های متن و دکمه را اضافه کردیم تا رکوردهای جدید را در < FooterTemplate > و < EmptyDataTemplate > اضافه کنید .
 
اتصال GridView
کد زیر برای اتصال داده ها از پایگاه داده SQL Server به کنترل GridView است
C #

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        this.BindData();
    }
}
 
private void BindData()
{
    string strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection(strConnString))
    {
        string strQuery = "SELECT * FROM Customers";
        SqlCommand cmd = new SqlCommand(strQuery);
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            con.Open();
            sda.SelectCommand = cmd;
            sda.Fill(dt);
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    }
}

VB.Net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
       Me.BindData()
    End If
End Sub
 
Private Sub BindData()
    Dim dt As DataTable = New DataTable
    Dim strConnString As String = ConfigurationManager.ConnectionStrings("conString").ConnectionString
    Using con As SqlConnection = New SqlConnection(strConnString)
       Dim strQuery As String = "SELECT * FROM Customers"
       Using cmd As SqlCommand = New SqlCommand(strQuery)
             Dim sda As SqlDataAdapter = New SqlDataAdapter
             cmd.Connection = con
             con.Open()
             sda.SelectCommand = cmd
             sda.Fill(dt)
             GridView1.DataSource = dt
             GridView1.DataBind()
       End Using
    End Using
End Sub

در تصویر زیر زمانی که هیچ داده ای در پایگاه داده وجود ندارد GridView نمایش داده می شود ، < EmptyDataTemplate > با سه جعبه متن و یک دکمه نمایش داده می شود.

اضافه کردن رکورد جدید به پایگاه داده با استفاده از GridView
در کد زیر زمانی که دکمه Add را کلیک میکنید فراخوانی می شود. این کد query درج در پایگاه داده را وارد می کند و رکورد را در جدول پایگاه داده SQL Server وارد می کند
C #

protected void Add(object sender, EventArgs e)
{
    Control control = null;
    if (GridView1.FooterRow != null)
    {
        control = GridView1.FooterRow;
    }
    else
    {
        control = GridView1.Controls[0].Controls[0];
    }
    string customerName = (control.FindControl("txtCustomerName") as TextBox).Text;
    string companyName = (control.FindControl("txtCompanyName") as TextBox).Text;
    string city = (control.FindControl("txtCity") as TextBox).Text;
    string strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(strConnString))
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "INSERT INTO [Customers] VALUES(@CustomerName, @CompanyName, @City)";
            cmd.Parameters.AddWithValue("@CustomerName", customerName);
            cmd.Parameters.AddWithValue("@CompanyName", companyName);
            cmd.Parameters.AddWithValue("@City", city);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }
    }
    Response.Redirect(Request.Url.AbsoluteUri);
}

VB.Net

Protected Sub Add(ByVal sender As Object, ByVal e As EventArgs)
    Dim control As Control = Nothing
    If (Not (GridView1.FooterRow) Is Nothing) Then
        control = GridView1.FooterRow
    Else
        control = GridView1.Controls(0).Controls(0)
    End If
    Dim customerName As String = CType(control.FindControl("txtCustomerName"), TextBox).Text
    Dim companyName As String = CType(control.FindControl("txtCompanyName"), TextBox).Text
    Dim city As String = CType(control.FindControl("txtCity"), TextBox).Text
    Dim strConnString As String = ConfigurationManager.ConnectionStrings("conString").ConnectionString
    Using con As SqlConnection = New SqlConnection(strConnString)
        Using cmd As SqlCommand = New SqlCommand
            cmd.Connection = con
            cmd.CommandType = CommandType.Text
            cmd.CommandText = "INSERT INTO [Customers] VALUES(@CustomerName, @CompanyName, @City)"
            cmd.Parameters.AddWithValue("@CustomerName", customerName)
            cmd.Parameters.AddWithValue("@CompanyName", companyName)
            cmd.Parameters.AddWithValue("@City", city)
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
            Response.Redirect(Request.Url.AbsoluteUri)
       End Using
   End Using
End Sub

در بالا بعد از اینکه رکورد در پایگاه داده قرار می گیرد، صفحه به خودش هدایت می شود به طوری که GridView با رکورد تازه وارد شده بارگذاری می شود. در تصویر زیر GridView را با رکورد اضافه شده جدید نمایش می دهد و در حال حاضر آن را < FooterTemplate > با سه جعبه متن و دکمه اضافه می کند.

 


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

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