用SQL Server数据库处理数据层错误

ZDNet软件频道 时间:2009-04-10 作者:Builder.com.cn Tony Patton | 天新网 我要评论()
本文关键词:数据库 Mssql SQL SQL Server
与数据库进行交互操作的时候会发生很多错误,但是很多开发人员都不知道如何处理数据库层的错误。本文我们将探讨如何利用SQLServer和T-SQL来处理你数据库代码里的错误。

下面是相应的VB.NET代码:

<%@ Import Namespace="System.Data.SQLClient"%>
<%@ Import Namespace="System.Data" %>
<%@ Page language="VB" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html><head>
<title>TechRepublic.com - Test</title>
</head><body>
<script language="VB" runat="server">
Dim conn AS SQLConnection
Dim cmd As SQLCommand
Dim connString As String
Dim rvalue As Integer
Public Sub SubmitChanges() 
connString = "datasource=LOU8-3590424PATTON;uid=test;
pwd=test;initial catalog=Northwind"
Try
conn = new SQLConnection(connString)
cmd = new SQLCommand("sp_UpdateCustomerPhone", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@id", SQLDbType.NVarChar, 5)
cmd.Parameters("@id").Value = lblID.Text
cmd.Parameters.Add("@phone", SQLDbType.NVarChar, 24)
cmd.Parameters("@phone").Value = txtPhone.Text
cmd.Parameters.Add("@retvalue",System.Data.SQLDbType.Int)
cmd.Parameters("@retvalue").Direction= ParameterDirection.Output
conn.Open()
cmd.ExecuteNonQuery()
rvalue = System.Convert.ToInt32(cmd.Parameters("@retvalue").Value)
If (rvalue = -1) Then
lblMessage.Text = "Database error duringupdate."
lblMessage.Visible = true
Else
lblMessage.Text = "Data has been updated."
lblMessage.Visible = true
End If
conn.Close()
Catch ex As SQLException
lblMessage.Text = "Error accessing database:" + ex.ToString()
Catch ex As Exception
lblMessage.Text = "Exception: " + ex.ToString()
Finally 
If (conn.State = ConnectionState.Open)Then
conn.Close()
End If
conn.Dispose()
End Try
End Sub
Private Sub btnUpdatePhone_Click(sender As Object, eAs 
System.Web.UI.WebControls.CommandEventArgs)
SubmitChanges()
End Sub
</script>
<form id="frmTestUpdate"method="post" runat="server">
<asp:Label ID="lblMessage"Visible="False" 
runat="server"></asp:Label><br /><br />
<asp:Label ID="lblPhone"runat="server">New Number:</asp:Label>
<asp:TextBox ID="txtPhone"runat="server" /><br/><br />
<asp:Button ID="btnUpdatePhone"Text="Update" 
OnCommand="btnUpdatePhone_Click" runat="server"/>
<asp:Label ID="lblID"Visible="False" runat="server">ALFKI</asp:Label>
</form></body></html>

涵盖所有的数据库

利用try/catch代码块来处理.NET应用程序代码里的异常是一个简单明了的过程,但是你还可以监视数据库层的异常。SQLServer的T-SQL语言为你处理代码异常提供了所需要的一切。

数据库

Mssql

SQL

SQL Server


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134