asp.net中使用DatagridView的增删改方法具体实现

当我们在ASP.NET应用程序中使用DataGridView控件时,我们通常需要实现增、删、改等数据交互操作功能。下面介绍具体实现方法:

一、创建数据库

选择合适的数据库系统,在其中创建一个表格,用于我们的演示。表格的结构如下:

CREATE TABLE [dbo].[Users](
    [UserID] [int] IDENTITY(1,1) NOT NULL,
    [Username] [nvarchar](50) NOT NULL,
    [Password] [nvarchar](50) NOT NULL,
    [Email] [nvarchar](50) NOT NULL,
    CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED([UserID] ASC)
    )

二、绑定DataGridView控件

在前端ASPX页面上添加一个DataGridView控件,并在后台代码中绑定数据源:

<asp:DataGridView ID="GridView1" runat="server"></asp:DataGridView>
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindGridview();
    }
}

private void BindGridview()
{
    string connString = ConfigurationManager.ConnectionStrings["conn"].ToString();
    SqlConnection conn = new SqlConnection(connString);
    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Users", conn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();
}

三、实现添加新记录

在ASP.NET中,我们使用SqlCommand类执行SQL命令。下面是添加新记录的实现代码:

protected void btnSave_Click(object sender, EventArgs e)
{
    string connString = ConfigurationManager.ConnectionStrings["conn"].ToString();
    SqlConnection conn = new SqlConnection(connString);
    string cmdText = "INSERT INTO Users (Username, Password, Email) VALUES (@UserName, @Password, @Email)";
    SqlCommand cmd = new SqlCommand(cmdText, conn);
    cmd.Parameters.AddWithValue("@UserName", txtUserName.Text);
    cmd.Parameters.AddWithValue("@Password", txtPassword.Text);
    cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    BindGridview();
}

四、实现修改记录

DataGridView控件的默认编辑模式为“单元格”模式,而我们需要的是“行”模式。因此,我们需要在DataGridView的属性窗口中将EditMode属性设置为“EditOnKeystrokeOrF2”,可以在选中整行的情况下进行编辑。

当修改记录时,我们需要获取当前行的唯一标识 - UserID,以便于根据该标识修改数据库中的记录。下面是修改记录的实现代码:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    string userID = GridView1.Rows[e.RowIndex].Cells[0].Text;
    string userName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
    string password = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
    string email = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;

    string connString = ConfigurationManager.ConnectionStrings["conn"].ToString();
    SqlConnection conn = new SqlConnection(connString);
    string cmdText = "UPDATE Users SET Username=@UserName, Password=@Password, Email=@Email WHERE UserID=@UserID";
    SqlCommand cmd = new SqlCommand(cmdText, conn);
    cmd.Parameters.AddWithValue("@UserName", userName);
    cmd.Parameters.AddWithValue("@Password", password);
    cmd.Parameters.AddWithValue("@Email", email);
    cmd.Parameters.AddWithValue("@UserID", userID);
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    GridView1.EditIndex = -1;
    BindGridview();
}

五、实现删除记录

在删除记录时,我们需要获取当前行的唯一标识 - UserID,以便于根据该标识从数据库中删除记录。下面是删除记录的实现代码:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    string userID = GridView1.Rows[e.RowIndex].Cells[0].Text;

    string connString = ConfigurationManager.ConnectionStrings["conn"].ToString();
    SqlConnection conn = new SqlConnection(connString);
    string cmdText = "DELETE FROM Users WHERE UserID=@UserID";
    SqlCommand cmd = new SqlCommand(cmdText, conn);
    cmd.Parameters.AddWithValue("@UserID", userID);
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    BindGridview();
}

以上就是ASP.NET中使用DataGridView控件的增删改方法的具体实现,可以用于自己的项目中实现相应的功能。

下面是具体的代码示例:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataGridView.aspx.cs" Inherits="DataGridView" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta charset="utf-8" />
    <title>DataGridView Example</title>
    <style type="text/css">
        table {
            border-collapse: collapse;
            margin: 10px 0;
            width: 100%;
        }

        table td, table th {
            border: 1px solid #bbb;
            padding: 4px;
            text-align: center;
        }

        h2 {
            margin: 30px 0 10px 0;
        }

        .add-new {
            margin-bottom: 10px;
        }

        .edit-controls {
            display: inline-block;
            width: 100%;
        }

        .edit-controls input[type="text"] {
            width: 100%;
            margin-bottom: 5px;
        }

        .edit-controls input[type="button"] {
            margin-top: 5px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <h2>DataGridView Example</h2>
        <div class="add-new">
            <input type="text" id="txtUserName" placeholder="Username" required />
            <input type="text" id="txtPassword" placeholder="Password" required />
            <input type="text" id="txtEmail" placeholder="Email" required />
            <input type="button" id="btnSave" value="Save" onclick="btnSave_Click()" />
        </div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
            <Columns>
                <asp:BoundField DataField="UserID" HeaderText="UserID" ReadOnly="True" />
                <asp:TemplateField HeaderText="Username" ItemStyle-Width="200px">
                    <ItemTemplate>
                        <asp:Label ID="lblUserName" runat="server" Text='<%#Eval("Username")%>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <div class="edit-controls"><input type="text" ID="txtUserName" runat="server" value='<%#Eval("Username")%>' /></div>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Password" ItemStyle-Width="200px">
                    <ItemTemplate>
                        <asp:Label ID="lblPassword" runat="server" Text='<%#Eval("Password")%>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <div class="edit-controls"><input type="text" ID="txtPassword" runat="server" value='<%#Eval("Password")%>' /></div>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Email" ItemStyle-Width="200px">
                    <ItemTemplate>
                        <asp:Label ID="lblEmail" runat="server" Text='<%#Eval("Email")%>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <div class="edit-controls"><input type="text" ID="txtEmail" runat="server" value='<%#Eval("Email")%>' /></div>
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            </Columns>
        </asp:GridView>
    </form>
    <script type="text/javascript">
        function btnSave_Click() {
            var userName = document.getElementById("txtUserName").value;
            var password = document.getElementById("txtPassword").value;
            var email = document.getElementById("txtEmail").value;

            if (userName == "" || password == "" || email == "") {
                alert("Please enter all fields.");
                return;
            }

            __doPostBack('<%=btnSave.ClientID %>', '');
        }
    </script>
</body>
</html>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net中使用DatagridView的增删改方法具体实现 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 如何搭建新的WPF项目框架

    如何搭建新的WPF项目框架 搭建新的WPF项目框架可以帮助我们更好地组织和管理WPF应用程序的代码。本文将提供详细的“如何搭建新的WPF项目框架”的完整攻略,包括如何创建项目结构、如何添加基础类以及两个示例。 创建项目结构 要创建新的WPF项目框架,我们需要执行以下步骤: 创建一个新的WPF应用程序项目。 在项目中创建一个名为“Infrastructure”…

    C# 2023年5月15日
    00
  • C# CopyTo(Array,Int32):从特定的索引开始将集合的元素复制到数组中

    C#中的 CopyTo 方法定义在 System.Array 类中。它允许将当前数组中的元素复制到另一个数组中。 CopyTo 方法有两个参数,第一个参数指定目标数组,第二个参数则指定从目标数组中的哪个位置开始复制。在本文中,我们将详细讲解 CopyTo 方法的完整攻略,并提供两个示例以便更好地理解它的工作原理。 语法 public void CopyTo(…

    C# 2023年4月19日
    00
  • 详解在.net中读写config文件的各种方法

    以下是详解在 .NET 中读写 config 文件的各种方法的完整攻略。 什么是 config 文件? 在 .NET 中,配置文件(config 文件)是一种文件,其中设置了应用程序的各种配置信息,例如数据库连接字符串、API 密钥、应用程序行为等。 读取配置文件 .NET 中有多种方法可以读取配置文件,以下是两个示例: 1. 使用 Configuratio…

    C# 2023年6月3日
    00
  • Winform中如何跨线程访问UI元素

    在 WinForm 应用程序中,当后台线程需要更新界面上的 UI 元素时,需要注意跨线程访问 UI 元素的问题。因为 UI 元素只能由创建它的主线程访问和修改,如果在其他线程中访问,程序将抛出一个“ System.InvalidOperationException ”异常。下面介绍两种常见的跨线程访问 UI 元素的办法。 方法一、使用 Control.Inv…

    C# 2023年5月31日
    00
  • C# File.Copy(string sourceFileName, string destFileName):复制指定文件

    File.Copy(string sourceFileName, string destFileName)方法是C#中的一个文件操作方法,其主要作用是将一个已存在的文件复制到一个新的文件中。该方法的语法如下: public static void Copy(string sourceFileName, string destFileName); 该方法有两个…

    C# 2023年4月19日
    00
  • C#实现FTP传送文件的示例

    下面是详细讲解“C#实现FTP传送文件的示例”的完整攻略: 一、前置准备 在使用C#来实现FTP传送文件前,我们需要确保我们已经安装了.NET Framework并配置好了我们的FTP服务器。 1. 安装.NET Framework .NET Framework是Microsoft开发和运行Windows操作系统的一个核心组件,我们需要确保我们已经安装了最新…

    C# 2023年6月1日
    00
  • 详解.NET 6如何实现获取当前登录用户信息

    获取当前登录用户信息是Web应用程序中常见的功能之一。在.NET 6中,可以使用ASP.NET Core身份验证功能来实现获取当前登录用户信息。下面是详细的攻略。 添加ASP.NET Core身份验证 在.NET 6中,添加ASP.NET Core身份验证功能非常简单,只需在应用程序的Startup.cs文件中的ConfigureServices方法中添加以…

    C# 2023年5月31日
    00
  • 电脑英文缩写大全

    为了让大家更好地了解“电脑英文缩写大全”的完整攻略,我将分为以下几个部分进行讲解: 1. 收集电脑英文缩写 首先,我们需要收集电脑英文缩写。可以从各种渠道去收集,比如: 在网上搜索相关的英文缩写资料; 浏览电脑文章、手册、技术文档等,注意其中使用的缩写; 参考行业内广泛流传的缩写资料,如IEEE 802.11、ISO 9660等。 收集到英文缩写之后,需要对…

    C# 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部