ASP.Net/ADO.net Database/Catch Exception

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Try Catch Finally for reading data from SQL server (VB.net)

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
   <title>Try-Catch-Finally Example</title>
   <head>
      <script runat="server">
         Sub Page_Load()
     "    Dim ConnStr As String = "Data Source=(local)\NetSDK;" & _
      "      "Initial Catalog=Pubs;Trusted_Connection=True;"
            Dim ConnStr As String = "Data Source=whsql-v08.prod.mesa1.secureserver.net;Initial Catalog=DB_49907;User ID=nfexuser;Password="password";"
            Dim SQL As String = "SELECT ID, FirstName FROM Employee " & _ 
               "WHERE ID IS NOT NULL"
            Dim PubsConn As New SqlConnection(ConnStr)
            Dim TitlesCmd As New SqlCommand(SQL, PubsConn)
            Dim Titles As SqlDataReader
            Try
               PubsConn.Open()
               Titles = TitlesCmd.ExecuteReader()
               Output.Text = "<table>"
               While Titles.Read()
                  Output.Text &= "<tr>"
                  Output.Text &= "<td>" & Titles.GetString(0) & "</td>"
"                  Output.Text &= "<td>$" & _
 "                    Format(Titles.GetDecimal(1), "##0.00") & "</td>"
                  Output.Text &= "</tr>"
               End While
               Output.Text &= "</table>"
            Catch sqlEx As SqlException
               Response.Write("A SqlException has occurred.")
            Catch ex As Exception
               Response.Write("An Exception has occurred.")
            Finally
               If Not Titles Is Nothing Then
                  If Not Titles.IsClosed Then
                     Titles.Close()
                  End If
               End If
               If PubsConn.State = ConnectionState.Open Then
                  PubsConn.Close()
               End If
            End Try
            Response.Write("<br/>The current connection state is: " & _
               PubsConn.State.ToString() & ".")
         End Sub
      </script>
   </head>
<body>
   <h1>SqlDataReader Example</h1>
   <asp:label id="Output" runat="server"/>
</body>
</html>



Writing data from the connection with try and catch (C#)

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script Language="c#" runat="server">
  void Page_Load()
  {
    string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
//    strConnection += @"Data Source=C:\Northwind.mdb";
    strConnection += @"Data Source="+MapPath("EmployeeDatabase.mdb");
    data_src.Text = strConnection;
    string strSQL = "SELECT FirstName, LastName FROM Employee;";
    DataSet objDataSet = new DataSet();
    OleDbConnection objConnection = new OleDbConnection(strConnection);
    OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSQL, objConnection);
    try
    {
      objAdapter.Fill(objDataSet, "Employees");
      DataView objDataView = new DataView(objDataSet.Tables["Employees"]);
      dgNameList.DataSource = objDataView;
      dgNameList.DataBind();
    }
    catch (OleDbException objError)
    {
      if (objError.Message.Substring(0,21) == "Login failed for user")
      {
        divErrorReport.InnerHtml = "Problem with Log-in";
      }
      else if (objError.Message.Substring(0,19) == "Could not find file")
      { 
        divErrorReport.InnerHtml = 
                          "We could not find the MDB file that you asked for"; 
      }
      else
      {
        divErrorReport.InnerHtml =  "<br />message - " + objError.Message;
        divErrorReport.InnerHtml += "<br />source - " + objError.Source;
      }
    }
  }
</script>
<html>
  <body>
  <h4>Writing data from the connection
    <asp:label id="data_src" runat="server"/>
    to the DataGrid control with error checking.</h4>
  <div id="divErrorReport" runat="server"> </div>
  <asp:datagrid id="dgNameList" runat="server" /><br />
  </body>
</html>


<A href="http://www.nfex.ru/Code/ASPDownload/EmployeeDatabase.zip">EmployeeDatabase.zip( 10 k)</a>