Introduction

This article explains how to access data from the database and how to update the records using 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


Create Stored Procedure

The following will create a Stored Procedure for the updates:

create proc UpdateRecord

@uid int,

@username varchar(30),

@firstname varchar(30),

@lastname varchar(30),

@address nvarchar(max),

@city varchar(30)

as

begin

update UserInformation set UserName=@username,FirstName=@firstname,LastName=@lastname,Address=@address,City=@city where UserId=@uid

end

Now let's use the following procedure.

Step 1:

Open Visual Studio and select "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 on "Ok."

import-namespaces.jpg

Step 4:

Write the following code for the F# applcation:

// Learn more about F# at http://fsharp.net

// See the 'F# Tutorial' project for more help.

//Adding NameSpaces

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

let com2 = new SqlCommand()

//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 txtname = new TextBox(Top = 50, Left = 100,Height = 20)

let txtfname = new TextBox(Top = 90, Left = 100,Height = 20)

let txtlname = new TextBox(Top = 130, Left = 100, Height = 20)

let txtaddress = new TextBox(Top = 170, Left = 100, Height = 20)

let txtcity = new TextBox(Top = 200, Left = 100, Height = 20)

let searchbtn = new Button(Top = 230, Left=80)

let updatebtn = new Button(Top=230, Left=170)

//Adding Controls()

form.Controls.Add(lbluserId)

form.Controls.Add(txtuserId)

form.Controls.Add(lblusername)

form.Controls.Add(txtname)

form.Controls.Add(lbluserfname)

form.Controls.Add(txtfname)

form.Controls.Add(lbluserlname)

form.Controls.Add(txtlname)

form.Controls.Add(lbluseraddress)

form.Controls.Add(txtaddress)

form.Controls.Add(lblusercity)

form.Controls.Add(txtcity)

form.Controls.Add(searchbtn)

form.Controls.Add(updatebtn)

form.Text <- "Updating The Records"

searchbtn.Text <-"Search"

updatebtn.Text <-"Update"

lbluserId.Text <- "Enter UserId :"

lblusername.Text <- "UserName:"

lbluserfname.Text <- "FirstName :"

lbluserlname.Text <- "LastName :"

lbluseraddress.Text <- "Address :"

lblusercity.Text <- "City :"

//Search the records

searchbtn.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

txtname.Text <- dr.Item(1).ToString()

txtfname.Text <- dr.Item(2).ToString()

txtlname.Text <- dr.Item(3).ToString()

txtaddress.Text <- dr.Item(4).ToString()

txtcity.Text <- dr.Item(5).ToString())|>ignore

//Update the Records

updatebtn.Click.Add(fun _->

con.Close()

com1.Connection <- con

con.Open()

com1.CommandType <- CommandType.StoredProcedure

com1.CommandText <- "UpdateRecord" //UpdateRecord is a stored procedure

com1.Parameters.AddWithValue("@uid",txtuserId.Text) |> ignore

com1.Parameters.AddWithValue("@username",txtname.Text ) |> ignore

com1.Parameters.AddWithValue("@firstname",txtfname.Text) |> ignore

com1.Parameters.AddWithValue("@lastname",txtlname.Text) |> ignore

com1.Parameters.AddWithValue("@address",txtaddress.Text) |> ignore

com1.Parameters.AddWithValue("@city",txtcity.Text) |> ignore

com1.ExecuteNonQuery()|> ignore

con.Close()

MessageBox.Show("Records Updated")|>ignore

txtname.Clear()

txtfname.Clear()

txtlname.Clear()

txtaddress.Clear()

txtcity.Clear()

txtname.Focus() |>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 for locating the records uniquely from the database. Now click on the "Search" button.

EnterId.jpg

Step 7:

After clicking on the Search button all the records are fetched into the textboxes from the database.

search-records.jpg

Step 8:

Now you can update your records and after updating the fetched records, just click the "Update" button then the records are saved to the database.

update-record.jpg


records updated.jpg

Step 9:

To check your updated records, go to the SQL Server database and write the following query in the Query Editor and execute the query by pressing F5:

select * from UserInformation

datbase-ouput.jpg

Summary

In this article you have seen how to create a table and insert values into the table fields and how to search the records in the database to a Windows Forms application and after fetching these records you can update your records and save then back into the database.