Introduction
This article explains how to retrieve data from the database in a F# Windows Forms Application.
Create Table In Database
The following will create a table in the database:
CREATE TABLE [dbo].[UserInformation](
[UserId] [int] IDENTITY(1,1) NOT NULL,
[UserName] [varchar](30) NULL,
[FirstName] [varchar](30) NULL,
[LastName] [varchar](30) NULL,
[Address] [nvarchar](max) NULL,
[City] [varchar](30) NULL
)
Insert values into the table fields:
insert into userinformation values ('Pank','Pankaj','Lohani','a-43 santnagar','Delhi')
insert into userinformation values ('Nicks','Nimit','Joshi','Vinod Nagar','Delhi')
insert into userinformation values ('pr','pravesh','khanduri','pratap vihar','Delhi')
insert into userinformation values ('Nicks','Nimit','Joshi','Vinod Nagar','Delhi')
insert into userinformation values ('Ammu','Amit','Senwal','East Vinod Nagar','Delhi')
![output-database.jpg]()
Now let's use the following procedure.
Step 1:
Open Visual Studio and click on "Create New Project" then select "F# Console Application".
![create application.jpg]()
Step 2:
Now go the Solution Explorer on to the right side of the application. Select "References" and right-click on it and select "Add references".
![select-references.jpg]()
![add-references.jpg]()
Step 3:
After selecting "Add References", in the framwork template you need to select "System.Windows.Forms", "System.Drawing" and "System.Data" while holding down the Ctrl key and click "Ok."
![import-namespaces.jpg]()
Step 4:
Write the code for the F# applcation as in the following:
// Learn more about F# at http://fsharp.net
// See the 'F# Tutorial' project for more help.
//Adding NameSpace
open System
open System.Windows.Forms
open System.Data.SqlClient
open System.Drawing
open System.Data
//Connection String
let constring = @"Data Source=MCNDESKTOP20;Initial Catalog=information;User ID=sa; Password=password@123"
let con = new SqlConnection(constring)
let com1 = new SqlCommand() //creating the command object
//Creating Window Form
let form = new Form()
//Creating usercontrols on forms
let lbluserId = new Label(Top = 10, Left = 0, Height = 20)
let txtuserId = new TextBox(Top =10, Left = 100,Height = 20)
let lblusername = new Label(Top = 50, Left = 0,Height = 20)
let lbluserfname = new Label(Top = 90, Left = 0,Height = 20)
let lbluserlname = new Label(Top = 130, Left = 0,Height = 20)
let lbluseraddress = new Label(Top = 170, Left = 0, Height = 20)
let lblusercity = new Label(Top = 200, Left = 0, Height = 20)
let lblname = new Label(Top = 50, Left = 100,Height = 20)
let lblfname = new Label(Top = 90, Left = 100,Height = 20)
let lbllname = new Label(Top = 130, Left = 100, Height = 20)
let lbladdress = new Label(Top = 170, Left = 100, Height = 20)
let lblcity = new Label(Top = 200, Left = 100, Height = 20)
let btn1 = new Button(Top = 280, Left=80)
//Adding Controls()
form.Controls.Add(lbluserId)
form.Controls.Add(txtuserId)
form.Controls.Add(lblusername)
form.Controls.Add(lblname)
form.Controls.Add(lbluserfname)
form.Controls.Add(lblfname)
form.Controls.Add(lbluserlname)
form.Controls.Add(lbllname)
form.Controls.Add(lbluseraddress)
form.Controls.Add(lbladdress)
form.Controls.Add(lblusercity)
form.Controls.Add(lblcity)
form.Controls.Add(btn1)
form.Text <- "Searching The Records"
btn1.Text <-"Search"
lbluserId.Text <- "Enter UserId :"
lblusername.Text <- "UserName:"
lbluserfname.Text <- "FirstName :"
lbluserlname.Text <- "LastName :"
lbluseraddress.Text <- "Address :"
lblusercity.Text <- "City :"
btn1.Click.Add(fun _->
con.Open()
com1.Connection <- con
com1.CommandText <- " select * from UserInformation where UserId = "+txtuserId.Text+" "
let dr = com1.ExecuteReader()
while dr.Read() do
lblname.Text <- dr.Item(1).ToString()
lblfname.Text <- dr.Item(2).ToString()
lbllname.Text <- dr.Item(3).ToString()
lbladdress.Text <- dr.Item(4).ToString()
lblcity.Text <- dr.Item(5).ToString())|>ignore
Application.Run(form)// Run the application
Step 5:
Debug the application by pressing F5 and the result will be shown in the application as given below.
![after-debug.jpg]()
Step 6:
Now you need to enter the user id because the user id is defined as a primary key in the table that finds the records uniquely from the database.
![EnterUserId.jpg]()
Output
![record-search.jpg]()