65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET 数据库管理员控件

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.89/5 (6投票s)

2004年12月20日

CPOL

4分钟阅读

viewsIcon

131644

downloadIcon

2318

本文提供了使用 ASP.NET 创建动态网站控件面板的基本知识。

登录页面

管理员菜单

记录表单

记录列表

创建 Web 应用程序,以便对任何数据库执行基于数据库的登录、添加、编辑和删除操作。

引言

通过以下步骤可以在 ASP.NET 中创建数据库控件面板或动态网站控件面板:

  1. 首先,您需要创建一个登录页面,以便只有管理员用户能够使用用户名和密码登录。
  2. 添加新数据:需要一个 Web 表单来接收用户输入,当用户按下“保存”或“提交”按钮时,数据将被保存在数据库中。
  3. 查看数据:查询数据库并获取所需的结果/记录集,然后将其显示在某种可呈现的控件中。
  4. 删除数据:获取记录列表,然后选择要删除的记录,之后执行删除操作。
  5. 修改数据:选择要修改的记录,一旦值被修改,您就必须执行查询来更新数据库。

如何与数据库交互

ASP.NET 在 DATA 命名空间下有许多内置的数据库管理对象,其中最常见的是:

  • OleDbConnection:用于执行不同类型数据库的连接功能。
  • OleDbCommand:用于执行查询。
  • OleDbDataReader:用于获取记录集。
  • DataSet:用于在从数据库中选择数据后将其存储在内存中,类似于记录集。

现在我将尝试逐步解释这个应用程序。

登录

我使用了基于表单的身份验证系统来确保安全和访问权限。我添加了一个 Web 表单来获取 usernamepassword。当用户填写此表单并提交登录信息时,将执行以下代码:

Dim cn As New OleDb.OleDbConnection
Dim cm As New OleDb.OleDbCommand
Dim dr As OleDb.OleDbDataReader
Dim username As String = txtUsername.Text
Dim password As String = txtPassword.Text
Try
    cn.ConnectionString = ConfigurationSettings.AppSettings("ConnectionString")
    cn.Open()
    cm.Connection = cn
    cm.CommandText = "Select * From admin where username='" _
    & username & "' and password='" & password & "'"
    dr = cm.ExecuteReader()
    'dr.Read()
    If dr.HasRows Then
       System.Web.Security.FormsAuthentication.RedirectFromLoginPage(username, False)
    Else
       lblMsg.Text = "Incorrect username or password!"
    End If
Catch ex As Exception
   lblMsg.Text = ex.Message
End Try

此处解释了执行的操作。

首先,我们需要定义 connectioncommand 对象,并声明两个变量来存储提交表单中的 usernamepassword。启动一个 Try 块,并从应用程序设置中加载 ConnectionString 值。之后,执行查询以检查 usernamepassword,如果为给定的 usernamepassword 选择了一条记录,则表示登录信息正确,否则表示登录不正确,并显示一条错误消息,提示用户名或密码不正确。System.Web.Security.FormsAuthentication.RedirectFromLoginPage(username, False) 用于告知 ASP.NET 应用程序用户提供的登录信息是正确的,以便用户可以访问安全内容。

管理员菜单

应用程序访问不同部分的主要导航系统。

添加新/编辑记录

使用 Web 表单获取用户的输入,包括内容标题和内容文本。以下是用于将新记录保存到数据库的代码:

Dim cn As New OleDb.OleDbConnection
Dim cm As New OleDb.OleDbCommand
Dim title As String = txtTitle.Text
Dim content As String = txtContent.Text
Try
    cn.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0; " & _
    "Data Source=C:\Inetpub\wwwroot\ASPNETDBAdminControl\database\data.mdb"
    cn.Open()
    cm.Connection = cn
    If Request.QueryString("id") <> "" Then
        cm.CommandText = "Update Content Set Title='" & _
        title & "', content='" & content & "' " _
        & "Where id=" & Request.QueryString("id")
        lblMsg.Text = "Content Record is updated successfully"
    Else
        cm.CommandText = "Insert Into Content (title,content)" _
        & " Values('" & title & "','" & content & "')"
        lblMsg.Text = "Content Record is inserted successfully"
    End If
    cm.ExecuteNonQuery()
Catch ex As Exception
    lblMsg.Text = ex.Message
End Try

这些事件根据“添加新/编辑”的条件执行两个功能。如果提供了参数 ID,则进行编辑,否则执行“添加新”。我使用了同一个表单来执行“添加新”和“编辑”操作。在“添加新”中,通过在后台调用 Insert 查询来插入用户输入的信息。在需要执行编辑操作的情况下,表单加载事件会加载选定记录 ID 的数据,然后在用户按下“保存”按钮时编辑信息。此处调用 Update 查询。

列出记录/编辑/删除功能

使用数据库控件在数据库中显示记录列表,此控件模板可以自定义以显示所需格式的信息。以下代码用于在表单加载事件中填充记录,并检查删除操作,如果提供了 delid 参数,则删除相应的记录。

Dim cn As New OleDb.OleDbConnection
Dim cm As New OleDb.OleDbCommand
Dim dr As OleDb.OleDbDataReader
Try
    cn.ConnectionString = ConfigurationSettings.AppSettings("ConnectionString")
    cn.Open()
    cm.Connection = cn
    If Request.QueryString("delid") <> "" Then
        cm.CommandText = "DELETE From Content Where ID=" & _
                         Request.QueryString("delid")
        cm.ExecuteNonQuery()
        lblMsg.Text = "Content Deleted: " & Request.QueryString("delid")
    End If
    cm.CommandText = "Select id as ID,title as" & _ 
                     " Title,left(content,50) as Content From Content"
    dr = cm.ExecuteReader()
    DataList1.DataSource = dr
    DataList1.DataBind()
Catch ex As Exception
    lblMsg.Text = ex.Message
End Try

当用户单击 DataList 上的选项时,将调用以下代码。

Select Case e.CommandName
    Case "Edit"
        Response.Redirect("frmcontent.aspx?id=" & e.CommandArgument)
    Case "Delete"
        'lblMsg.Text = "Delete: " & e.CommandArgument
         Response.Redirect("listcontents.aspx?delid=" & e.CommandArgument)
End Select

如果用户按下“编辑”,则使用选定的记录 ID 调用 frmcontent,如果按下“删除”,则调用 delete 函数。

关于此应用程序

这是一个小型 Web 应用程序,它使用 ASP.NET 包含基本的数据库功能,包括数据库驱动的用户身份验证、添加新记录、查看记录、编辑和删除记录。

登录信息

  • 用户名:admin
  • 密码:admin

配置

请根据您的设置更改以下 ConnectionString 值。

<appSettings>
<add key="ConnectionString" 
  value="Provider=Microsoft.JET.OLEDB.4.0; 
  Data Source=C:\Inetpub\wwwroot\ASPNETDBAdminControl\database\data.mdb" />
</appSettings>
<authentication mode="Forms"> 
<forms loginUrl="login.aspx" name="DBLogin" />
</authentication>
<!-- AUTHORIZATION 
This section sets the authorization policies 
of the application. You can allow or deny access
to application resources by user or role. 
Wildcards: "*" mean everyone, "?" means anonymous 
(unauthenticated) users.
-->
<authorization>
<deny users="?" /> <!-- Allow all users -->
<!-- <allow users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
<deny users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
-->
</authorization>

下一步

在我看来,这是一个非常紧凑的应用程序,提供了数据库驱动的用户身份验证、登录 Web 表单、添加新记录、查看记录、编辑记录和删除记录的功能。这对于初学者来说可能非常有用,而高级用户可以自定义此模板以进行数据库驱动的 Web 应用程序开发。

© . All rights reserved.