ASP.NET 数据库管理员控件






2.89/5 (6投票s)
本文提供了使用 ASP.NET 创建动态网站控件面板的基本知识。
登录页面
管理员菜单
记录表单
记录列表
创建 Web 应用程序,以便对任何数据库执行基于数据库的登录、添加、编辑和删除操作。
引言
通过以下步骤可以在 ASP.NET 中创建数据库控件面板或动态网站控件面板:
- 首先,您需要创建一个登录页面,以便只有管理员用户能够使用用户名和密码登录。
- 添加新数据:需要一个 Web 表单来接收用户输入,当用户按下“保存”或“提交”按钮时,数据将被保存在数据库中。
- 查看数据:查询数据库并获取所需的结果/记录集,然后将其显示在某种可呈现的控件中。
- 删除数据:获取记录列表,然后选择要删除的记录,之后执行删除操作。
- 修改数据:选择要修改的记录,一旦值被修改,您就必须执行查询来更新数据库。
如何与数据库交互
ASP.NET 在 DATA
命名空间下有许多内置的数据库管理对象,其中最常见的是:
OleDbConnection
:用于执行不同类型数据库的连接功能。OleDbCommand
:用于执行查询。OleDbDataReader
:用于获取记录集。DataSet
:用于在从数据库中选择数据后将其存储在内存中,类似于记录集。
现在我将尝试逐步解释这个应用程序。
登录
我使用了基于表单的身份验证系统来确保安全和访问权限。我添加了一个 Web 表单来获取 username
和 password
。当用户填写此表单并提交登录信息时,将执行以下代码:
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
此处解释了执行的操作。
首先,我们需要定义 connection
和 command
对象,并声明两个变量来存储提交表单中的 username
和 password
。启动一个 Try
块,并从应用程序设置中加载 ConnectionString
值。之后,执行查询以检查 username
和 password
,如果为给定的 username
和 password
选择了一条记录,则表示登录信息正确,否则表示登录不正确,并显示一条错误消息,提示用户名或密码不正确。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 应用程序开发。