- controlobjvariable.DataBindings.Add(new Binding(controlproperty, datasetname, fieldname))
- fnamelabel.DataBindings.Add(new Binding("Text", dataset11, "Table1.fname", true))
Before the Database Connection and Binding process I want you to make an Ms-Access database file named “dbEmployee” containing a table named “tblEmployee”. Use the following specifications:
Field Name | Data Type | Description |
chrempno | text | Handles employee id |
chrfname | text | Handles employee’s name |
chrlname | text | Holds employee’s last name |
After designing the structure of your table, you can enter appropriate values for each field. For instance:
chrempno | chrfname | Chrlname |
2010A | John | Doe |
2010B | Jean | Doe |
Now that we are done creating a table, we can now link to it by using OleDbDataAdapter in Visual F#:
1. Click Start>All Programs>Microsoft Visual Studio 2008>Microsoft Visual Studio 2008.
2. Click File>New>Project>Select Visual F# in the project types>Select F# application in the Visual Studio installed templates category.
3. Click the Project menu>Add reference>Click the .Net tab>Locate then double-click System.Windows.Forms. Do step 3 again and this time, select System.Drawing and System.Data from the .Net tab.
4. Enter the following code after the line “// Learn more about F# at http://fsharp.net “:
- // Learn more about F# at http://fsharp.net
- //specifies the memory location of the class files
- //that will be needed in our application
- open System
- open System.Windows.Forms
- open System.Data
- open System.Drawing
- //creates a font
- let ffont=new Font("Verdana", 9.75F,FontStyle.Regular, GraphicsUnit.Point)
- //creates a connection object
- let oleconn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=C:\Documents and Settings\station 2\My Documents\dbEmployee.mdb")
- //creates an OleDbDataAdapter
- let dataadpter = new System.Data.OleDb.OleDbDataAdapter("Select * from tblEmployee", oleconn)
- //generates a dataset
- let dataset11 = new DataSet()
- //fills the dataset with recod values
- dataadpter.Fill(dataset11,"tblEmployee")|>ignore
- //creates a form
- let dataform = new Form(Text="Use OleDbDataAdapter",AutoScaleDimensions=new System.Drawing.SizeF(60.0F, 13.0F),ClientSize=new System.Drawing.Size(300, 200),StartPosition=FormStartPosition.CenterScreen)
- //creates our controls
- let exitbutton=new Button(Text="Exit", Location=new System.Drawing.Point(190, 170))
- let label1=new Label(Text="Employee number:",Location=new System.Drawing.Point(0, 10),AutoSize=true)
- let label2=new Label(Text="Firstname:",Location=new System.Drawing.Point(0, 50),AutoSize=true)
- let label3=new Label(Text="Lastname:",Location=new System.Drawing.Point(0,100),AutoSize=true)
- let emplabel=new Label(Location=new System.Drawing.Point(140,10),BorderStyle=BorderStyle.FixedSingle)
- let fnamelabel=new Label(Location=new System.Drawing.Point(100,50),BorderStyle=BorderStyle.FixedSingle)
- let lnamelabel=new Label(Location=new System.Drawing.Point(100,100),BorderStyle=BorderStyle.FixedSingle)
- //assings the font to our form
- dataform.Font<-ffont
- //adds the controls to our form
- dataform.Controls.Add(exitbutton)
- dataform.Controls.Add(label1)
- dataform.Controls.Add(label2)
- dataform.Controls.Add(label3)
- dataform.Controls.Add(emplabel)
- dataform.Controls.Add(fnamelabel)
- dataform.Controls.Add(lnamelabel)
- //binds the fieldnames to our label
- emplabel.DataBindings.Add(new Binding("Text",dataset11,"tblEmployee.chrempno"))
- fnamelabel.DataBindings.Add(new Binding("Text",dataset11,"tblEmployee.chrfname"))
- lnamelabel.DataBindings.Add(new Binding("Text",dataset11,"tblEmployee.chrlname"))
- //when the exit button is clicked
- exitbutton.Click.Add(fun exit->
- //close the form and dataconnection
- dataform.Close()
- oleconn.Close())
- //executes our application
- dataform.Show()
- Application.Run(dataform)
5. Click the run icon to execute your application. You should now see an output similar to the following screen shot: