systems lab
SAI 430 week 1
iLab
iLAB OVERVIEW
Scenario/Summary
The simple process of reading data from a database and transferring the data to a sequential file is a very integral part of data and information systems in industry today. For the system being developed in this course, this process is no less important. The actions of reading data from a database will actually take place in two different places in the system, and deal with two different databases. For this first lab, we will address one of those scenarios and create a small application that ends up being applicable to the project.
For this first lab, we will use the Microsoft Visual Studio suite of applications and build our lab project in C#.net. The application will be very simple in nature, but at the same time it offers all of the required functionality to accomplish the actions needed. One nice thing about the .NET environment is that it will do a lot of the work for you.
Very Important - Getting set up for the lab
You will be doing the labs for Visual Studio using the F:\ drive on the Citrix server. It is suggested, but not mandatory, that you create an SAI430 folder on your F drive just to keep your work separate from other work you might have on that drive. By doing this you actually will be taking the first steps to setting up the work needed to complete the group project for this course. If you decide to use the root F:\ drive, then keep that in mind when reading the rest of the instructions for the lab.
Before you can successfully complete this lab project, you will need to perform a few preliminary tasks to get your environment set up for the lab. First, you will need to download the INVENTORY.MDB access database from the Doc Sharing tab in the course website and save it into your directory structure on the F: drive. This is the same access database that will be used for the group project, but we will also be using it for several of the labs.
Deliverables
The main deliverables for this lab will be the C#.NET application and output file. Because a C#.NET application has a number of files associated with it contained in a directory folder named after the project name, as well as two sub directories ("bin" and "obj") with sub-folders under those, it is important that you submit all of the files needed for the application. By right clicking on the file folder that bears the application name (invgrb_la1) and then selecting to send the folder to a Zip file, you will get all of the files as well as folder structure needed to submit for grading. You will also want to add the output file to this Zip file.
Submit only the one Zip file to the week 1 iLab dropbox for grading.
iLAB STEPS
STEP 1: Creating a New Project
To begin the lab, first log into the iLab environment through Citrix and select the folder labeled SAI430. In this folder you will find icons for Windows Explorer, SQL*Plus and Visual Studio 2005. For this lab you will want to open up Visual Studio 2005. Be sure that you select "full access" from the security window box so that you will be to be able to access the C: on your current computer if you need to.
Once the Application has started up and you are at the Start Page, select the create a new project option. When presented with the New Project window like the one below, be sure that you have highlighted Console Application under the Templates window. Now give the new project the name INV_GRAB in the Name field, and have the location field pointing to the F:\SAI430 folder you have on the F: drive. The diagram below depicts what your New Project window should look similar to.
Once you have done this, select OK to complete this operation. You may get a "Microsoft Development Environment" message box stating that the project location is not a fully trusted .NET runtime location. You can ignore this and just select OK. You should now see your new project listed in the Solution Explorer window on the upper right hand corner of the editor window. You are now ready to begin setting up your form.
STEP 2: Setting Up a Database Connection
The first step now is to set up a database connection with Access and then a data set that can be used to transport the data from the database to the application to be written to a file. For the purposes of this lab and your project, you will only need data from two columns in the ITEMS table of the INVENTORY database, but we will control that with the code written later. The following steps will lead you through the process of setting up the connection.
· To begin, you need to add the following three namespaces to the top of your application code:
using System.IO; using System.Data; using System.Data.OleDb;
Since you are going to be not only connecting to a database but also writing data to a file, you will need all three of these listed.
· Now you can set up the connection to your Access database that you downloaded and put in your folder. The actual connection string is @"Provider=Microsoft.JET.OLEDB.4.0; data source=F:\inventory.mdb". This is a standard connection string for MS Access. You will want to precede this with the command - string conString = so that the finished connection looks like this.
string conString = @"Provider=Microsoft.JET.OLEDB.4.0; data source=F:\SAI430\inventory.mdb";
This is simply defining a string variable named conString and assigning the connection string to it. We will use this variable later.
· Now we need to define an OleDbConnection that will be used to connect to the database. To do this you will need to define a connection variable as a new OleDbConnection and point it to the connection string defined in the previous step. Your code should look like the following.
OleDbConnection conn = new OleDbConnection(conString);
Now you can connect and open the database with the following command entered right below the line above.
conn.Open();
· Last, we need to declare a variable that will be used later on. Although this really has nothing to do with setting up the database connection, this is as good a place as any to do this. You need to define a single variable named rowCount as an integer and initialize it to zero. Your code should look like the following.
int rowCount = 0;
STEP 3: Setting Up a Data Set
Now you will need to set up a Data Set that will be used to hold the data that is pulled from the database so that it can be processed. This dataset will hold all of the records from the item table. We will use this data to write out our inventory list to a file.
· You will need to create a query string that will be used to get the data in the "item" table. This will be a simple select statement that will get all of the data from the table (we will be specific regarding what is needed later). You will need to define a string variable for this query string similar to what you did for the connection string. When finished, your new string should look like the following:
string selectStr = "SELECT * FROM item";
There is a variable we will need to use later on, so we might as well define and initialize at this point. The new variable is an integer data type and needs to be named rowCount. Initialize it to zero.
· Now you need a new OleDbDataAdapter to work with the dataset. To do this you will need to define an object named DataAdapter as a new OleDbDataAdapter and then use the selectStr created above and the connection variable create to load it. Your code should look like the following:
OleDbDataAdapter DataAdapter = new OleDbDataAdapter(selectStr, conn);
· Now we can define the data set like the following:
DataSet dataSet = new DataSet();
This is a simple definition that we can use along with the DataAdapter Fill method to fill the data set like the following:
DataAdapter.Fill(dataSet, "item");
· We now have one more step that will allow us to define which columns we want to get data from later on. We need to define a DataTable object based on the new dataSet. To do this you will need the following code:
DataTable dataTable = dataSet.Tables[0];
STEP 4: Getting and Writing the Data
So far we have put everything together to get the data from the database into our program. Now we need to deal with writing the data out to a file. To do this we will be using the StreamWriter class and some of its objects.
We must declare a new instance of the StreamWriter so that we can obtain its methods. At the same time we can also initialize the new writer to point to where we want the file to be written to. Your code should look like the following.
StreamWriter sw = new StreamWriter(@"F:\sai430\INV_GRB.txt", false);
Now we are ready to set up the processing to loop through our data set, pull the data we need into a file, and print it out. To help with this there is a file in Doc Sharing named Lab1_code.txt. The code in this file can be copied and pasted into the area of the code section you are working, just below the line you added above. Be sure to change the directory path to match yours for the output file.
You are now ready to make your last build. If everything has been done correctly, you should end up with no error messages and clean build. Once this has been done then you are ready to execute the application by selecting Debug => Start from the main menu. If all goes well you should be able to find your output file in the location listed in the program.
STEP 5: Building the Application
You are now ready to make your last build, but first you need to make two changes to the properties for your project.
Changing the build option for 32-bit.
We need to build the application as a 32-bit application so it will work with the Microsoft ODBC drivers for Access; to do this you will need to select Project => INV_GRAB Properties from the main menu. Now select the Build tab on the side of the properties box, and then in the drop down list next to Program Target, select the X86 option. This will allow the application to build as a 32-bit application. Do not close the properties window yet though, because there is one more step.
Setting the Security option:
Now select the Security tab on the left side. Check the Enable ClickOnce Security Settings check box. This is a full trust application option, which is what you want.
Now select File => Save All from the main menu and then close the properties window.
Now you can either build or re-build the application. If everything has been done correctly, you should end up with no error messages and clean build. Once this has been done, you are ready to execute the application by selecting Debug => Start from the main menu. If all goes well you should be able to find your output file in the location listed in the program.
STEP 6: Testing Your Application
You first want to make sure that you have the Inventory.MDB database in the SAI430 folder on the F:\ of your directory structure in Citrix. This should also be the same location of your source code project and the location to which you have pointed the program to write the output file. In order to test the application and generate the output document you will need to turn in, do the following:
1. Again, make sure the application, inventory.mdb, and the output path in the application are all using the SAI430 directory on the F:\ drive in Citrix.
2. Execute your program.
3. Check to make sure that the output file has the correct data in it.
4. Submit this file along with your code to be graded.
Course Project
Course Project Review Only
Discussions
1.
|
Information vs. Service Integration (graded) |
The author states that there is a clear trend in moving away from information-oriented integration and toward service-oriented integration. Do you see any examples in your work environment or experience that would support this? Why do you think this is true, or do you disagree with the author?
2.
|
Lab and Project Forum (graded) |
This thread is used to discuss the programming labs and project techniques. Post any programming questions or "hints and tips" on this week's programming lab. At a minimum, post at least three notes that highlight the key programming techniques, problems you had with this week's lab, or help to other students.