topical media & game development

talk show tell print

basic-mysql-19-ASPApp-edit.aspx / aspx



  <%
  
***************************************************************************** Author: Geoff Moes and Robert Sheldon Project: Begining MySQL - Chapter 19 Module: edit.aspx Date: 12/10/04 Description: This page lists the individual record. It is called from the main page. If the page is called with an "add" command, it creates a blank record and populates it with default values. If it is called with an "edit" command, it displays an existing record. *****************************************************************************

  
  %>
  
  <%@ Page language="c#"%>
  <%@ Import Namespace="System" %>
  <%@ Import Namespace="System.Web" %>
  <%@ Import Namespace="System.IO" %>
  <%@ Import Namespace="System.Collections" %>
  <%@ Import Namespace="System.Data" %>
  <%@ Import Namespace="System.Data.Odbc" %>
  
  <%
  // Initialize variables with parameters retrieved from the form
  String command = Request.Form["command"];
  String transactionIdString = Request.Form["transaction_id"];
  String transIdString = Request.Form["TransID"];
  String orderIdString = Request.Form["OrderID"];
  String dvdIdString =   Request.Form["DVDID"];
  String dateOutString = Request.Form["DateOut"];
  String dateDueString = Request.Form["DateDue"];
  String dateInString = Request.Form["DateIn"];
  
  // Declare and initialize variables with default values
  OdbcConnection odbcConnection = null;
  
  DateTime dateDue = DateTime.MinValue;
  DateTime dateOut = DateTime.MinValue;
  DateTime dateIn = DateTime.MinValue;
  
  int orderId = -1;
  int dvdId = -1;
  String error = "";
  int transId = -1;
  
  String selectSql;
  OdbcCommand odbcCommand;
  OdbcDataReader odbcDataReader;
  
  // Wrap database-access code in try/catch block to handle errors
  try
  {
  
  // Create and open the connection
     String strConnection = "driver={MySQL ODBC 3.51 Driver};" +
                            "server=localhost;" +
                            "database=DVDRentals;" +
                            "uid=mysqlapp;" +
                            "password=pw1;";
  
     odbcConnection = new OdbcConnection(strConnection);
  
     odbcConnection.Open();
  
  // Process the save and savenew commands
     if("save".Equals(command) || "savenew".Equals(command))
     {
  // Check for missing parameters and reformat values for MySQL
        if(transIdString != null)
           transId = int.Parse(transIdString);
  
        if(orderIdString != null)
           orderId = int.Parse(orderIdString);
        if(orderId == -1)
           error += "Please select an \"Order\"<br>";
  
        if(dvdIdString != null)
           dvdId = int.Parse(dvdIdString);
        if(dvdId == -1)
           error += "Please select a \"DVD\"<br>";
        
        if((dateDueString != null) && (dateDueString.Length > 0))
           dateDue = DateTime.Parse(dateDueString);
        else
           error += "Please enter a \"Date Due\"<br>";
  
        if((dateOutString != null) && (dateOutString.Length > 0))
           dateOut = DateTime.Parse(dateOutString);
        else
           error += "Please enter a \"Date Out\"<br>";
  
        if((dateInString != null) && (dateInString.Length > 0))
           dateIn = DateTime.Parse(dateInString);
  
        if(error.Length == 0)
        {
           if("save".Equals(command))
           {
  // Run the update in update.aspx
  %>
              <!-- #Include File="update.aspx" -->
  <%
           }
           else
           {
  // Run the insert in insert.aspx
  %>
                 <!-- #Include File="insert.aspx" -->
  <%
           }
  
  // Redirect the application to the listing page
           Response.Redirect("index.aspx");
        }
     }
  
     else
     {
  // If it is a new record, initialize the variables to default values
        if("add".Equals(command))
        {
           transId = 0;
           orderId = 0;
           dvdId = 0;
           dateOutString = DateTime.Today.ToString("MM-dd-yyyy");
           dateDueString = DateTime.Today.AddDays(3).ToString("MM-dd-yyyy");
           dateInString = "";
        }
  
        else
        {
  // If it is an existing record, read from database
  
           if(transactionIdString != null)
           {
  
  // Build query from transactionId value passed down from form
              transId = int.Parse(transactionIdString);
              
              selectSql = "SELECT " +
                          "OrderID, " +
                          "DVDID, " +
                          "DateOut, " +
                          "DateDue, " +
                          "DateIn " +
                          "FROM Transactions " +
                          "WHERE TransID = ?";
  // Execute query
              odbcCommand = new OdbcCommand(selectSql, odbcConnection);
  
              OdbcParameter odbcParameter = new OdbcParameter("", OdbcType.Int);
              odbcParameter.Value = transId;
              odbcCommand.Parameters.Add(odbcParameter);
  
  // Populate the variables for display into the form
              odbcDataReader = odbcCommand.ExecuteReader();
  
              if(odbcDataReader.Read())
              {
                 orderId = (int) odbcDataReader["OrderID"];
                 dvdId = (int) (short) odbcDataReader["DVDID"];
  
                 object obj = odbcDataReader["DateOut"];
  
                 if(!obj.GetType().Equals(typeof(DBNull)))
                 {
                    dateOut = (DateTime) obj;
                    dateOutString = dateOut.ToString("MM-dd-yyyy");
                 }
                 else
                    dateOutString = "";
  
                 obj = odbcDataReader["DateDue"];
  
                 if(!obj.GetType().Equals(typeof(DBNull)))
                 {
                    dateDue = (DateTime) obj;
                    dateDueString = dateDue.ToString("MM-dd-yyyy");
                 }
                 else
                    dateDueString = "";
                 
                 obj = odbcDataReader["DateIn"];
                 
                 if(!obj.GetType().Equals(typeof(DBNull)))
                 {
                    dateIn = (DateTime) obj;
                    dateInString = dateIn.ToString("MM-dd-yyyy");
                 }
                 else
                    dateInString = "";
              }
  
  // Close objects
              odbcDataReader.Close();
  
              if(odbcCommand != null)
                 odbcCommand.Dispose();
           }
        }
     }
  %>
  
  <html>
  <head>
     <title>DVD - Listing</title>
     <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     <link rel="stylesheet" href="dvdstyle.css" type="text/css">
     <script language="JavaScript" src="dvdrentals.js"></script>
  </head>
  
  <body>
  
  <form name="mainForm" method="post" action="edit.aspx">
  <input type="hidden" name="command" value="view">
  <input type="hidden" name="TransID" value="<%=transId%>">
  
  <p></p>
  
  <table cellspacing="0" cellPadding="0" width="619" border="0">
  <tr>
     <td>
        <table height="20" cellspacing="0" cellPadding="0" width="619" bgcolor="#bed8e1" border="0">
        <tr align=left>
           <td valign="bottom" width="400" class="title">
              DVD Transaction
           </td>
           <td align="right" width="219" class="title">&nbsp;</td>
        </tr>
        </table>
        <br>
        <\%if(error.Length > 0){%>
        <table cellspacing="2" cellPadding="2" width="619" border="0">
        <tr>
           <td width="619" class="error"><%=error%></td>
        </tr>
        </table>
        <%}%>
  
        <table cellspacing="2" cellPadding="2" width="619" border="0">
        <tr>
           <td width="250" class="heading">Order</td>
           <td class="item">
              <select name="OrderID">
                 <option value="-1">Select Order</option>
  <%
  // Retrieve data to populate drop-down list
     selectSql = "SELECT Orders.OrderID, Orders.CustID, " +
                 "Customers.CustFN, Customers.CustLN " +
                 "FROM Orders, Customers " +
                 "WHERE Customers.CustID = Orders.CustID " +
                 "ORDER BY Orders.OrderID DESC";
  
  // Execute the query
     odbcCommand = new OdbcCommand(selectSql, odbcConnection);
  
     odbcDataReader = odbcCommand.ExecuteReader();
  
  // Loop through the results
     while(odbcDataReader.Read())
     {
  // Assigned returned values to the variables
        int orderId1 = (int) odbcDataReader["OrderID"];;
        String custFirstName = (String) odbcDataReader["CustFN"];
        String custLastName = (String) odbcDataReader["CustLN"];
  
  // Format the data for display
        String customerName = "";
  
        if(custFirstName != null)
           customerName += custFirstName + " ";
  
        if(custLastName != null)
           customerName += custLastName;
  
  // If the order ID matches the existing value mark, it as selected
  
        if(orderId1 != orderId)
        {
  %>
                 <option value="<%=orderId1%>"><%=orderId1%> - <%=customerName%></option>
  <%
        }
        else
        {
  %>
                 <option selected value="<%=orderId1%>"><%=orderId1%> - <%=customerName%></option>
  <%
        }
     }
  
  // Close objects
     odbcDataReader.Close();
  
     if(odbcCommand != null)
        odbcCommand.Dispose();
  %>
              </select>
           </td>
        </tr>
  
        <tr>
           <td class="heading">DVD</td>
           <td class="item">
              <select name="DVDID">
                 <option value="-1">Select DVD</option>
  <%
  // Retrieve data to populate drop-down list
     selectSql = "SELECT DVDID, DVDName FROM DVDs ORDER BY DVDName";
  
     odbcCommand = new OdbcCommand(selectSql, odbcConnection);
  
     odbcDataReader = odbcCommand.ExecuteReader();
  
  // Loop through the result set
     while(odbcDataReader.Read())
     {
        int dvdId1 = (int) (short) odbcDataReader["DVDID"];
        String dvdName = (String) odbcDataReader["DVDName"];
  
        if(dvdName == null) dvdName = "";
  
        if(dvdId1 != dvdId)
        {
  %>
                 <option value="<%=dvdId1%>"><%=dvdName%></option>
  <%
        }
        else
        {
  %>
                 <option selected value="<%=dvdId1%>"><%=dvdName%></option>
  <%
        }
     }
  
  // Close objects
     odbcDataReader.Close();
  
     if(odbcCommand != null)
        odbcCommand.Dispose();
  
     if(odbcConnection != null)
        odbcConnection.Dispose();
  
  %>
              </select>
           </td>
        </tr>
  
        <tr>
           <td class="heading">Date Out</td>
           <td class="item">
              <input type="text" name="DateOut" value="<%=dateOutString%>" size="50">
           </td>
        </tr>
        <tr>
           <td class="heading">Date Due</td>
           <td class="item">
              <input type="text" name="DateDue" value="<%=dateDueString%>" size="50">
           </td>
        </tr>
        <\%if((!"add".Equals(command)) && (!"savenew".Equals(command))){%>
        <tr>
           <td class="heading">Date In</td>
           <td class="item">
              <input type="text" name="DateIn"  value="<%=dateInString%>" size="50">
           </td>
        </tr>
        <%}%>
  
        <tr>
           <td colspan="2" class="item" align="center">
              <table cellspacing="2" cellPadding="2" width="619" border="0">
              <tr>
                 <td align="center">
                    <\%if(("add".Equals(command)) || ("savenew".Equals(command))){%>
                    <input type="button" value="Save" class="add" onclick="doSave(this, 'savenew')">
                    <%}else{%>
                    <input type="button" value="Save" class="add" onclick="doSave(this, 'save')">
                    <%}%>
                 </td>
                 <td align="center">
                    <input type="button" value="Cancel" class="add" onclick="doCancel(this)">
                 </td>
              </tr>
              </table>
           </td>
        </tr>
  
        </table>
     </td>
  </tr>
  </table>
  </form>
  </body>
  </html>
  <%
  }
  catch(Exception ex)
  {
     throw ex;
  }
  %>
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.