topical media & game development
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"> </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.