Introduction
This article explains how to work with Windows Forms applications in F# and how to import the namespaces. In addition you will see how to connect with a SQL Server database from the Windows Forms application and how to add user controls in the Windows Forms application. I have shown how to import the essential namespaces in F#.
At first to create the database in SQL Server, write the following code in database SQL Server.
create database UserInformation
use UserInformation
create table EmployeeInfo(
EmpId int,
FirstName varchar(30),
LastName varchar(30),
Salary money,
Address nvarchar(max),
City varchar(30)
)
Now use the following steps in Visual Studio 2012.
Step 1:
Open Visual Studio 2012 and select "New project" --> "Visual F#" -> "F# console application" to create your F# application.
Step 2:
In this step you need to go at solution explorer and right-click on references and select the add references see the figure given below
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."
Step 4:
Write the following code in the F# console application.
//Importing Namespace
open System
open System.Windows.Forms
open System.Drawing
open System.Data.SqlClient
open System.Data
// Creating Form & User Controls
// Form
let MyForm = new Form(Height =400, Width = 500)
// Labels
let lbl1 = new Label(Top =20 , Height =30, Width = 50)
let lbl2 = new Label(Top =50 , Height =30, Width = 100)
let lbl3 = new Label(Top =80 , Height =30, Width = 100)
let lbl4 = new Label(Top =110 , Height =30, Width = 50)
let lbl5 = new Label(Top =140 , Height =30, Width = 50)
let lbl6 = new Label(Top =170, Height =30, Width = 50)
// TextBoxes
let txt1 = new TextBox(Top =20, Left =120)
let txt2 = new TextBox(Top =50, Left =120)
let txt3 = new TextBox(Top =80, Left =120)
let txt4 = new TextBox(Top =110,Left=120)
let txt5 = new TextBox(Top =140,Left=120)
let txt6 = new TextBox(Top =170,Left=120)
lbl1.Text <- "ID:"
lbl2.Text <- "First Name :"
lbl3.Text <- "Last Name :"
lbl4.Text <- "Salary"
lbl5.Text <- "Address"
lbl6.Text <- "City"
let btn1 = new Button(Top =200, Left =80, Height =40, Width =60)
btn1.Text <- "SUBMIT"
//Adding Controls to Form
MyForm.Controls.Add(lbl1)
MyForm.Controls.Add(lbl2)
MyForm.Controls.Add(lbl3)
MyForm.Controls.Add(lbl4)
MyForm.Controls.Add(lbl5)
MyForm.Controls.Add(lbl6)
MyForm.Controls.Add(txt1)
MyForm.Controls.Add(txt2)
MyForm.Controls.Add(txt3)
MyForm.Controls.Add(txt4)
MyForm.Controls.Add(txt5)
MyForm.Controls.Add(txt6)
MyForm.Controls.Add(btn1)
//Database Connectivity
let constr = @"Data Source=.;Initial Catalog=UserInformation; uid=sa; pwd=password@123; Integrated Security=True"
let con = new SqlConnection(constr)
let com1 = new SqlCommand()
let com2 = new SqlCommand()
let com3 = new SqlCommand()
let com4 = new SqlCommand()
let ds = new DataSet()
//Clear the TextBoxes
btn1.Click.Add(fun _->
txt1.Clear()
txt2.Clear()
txt3.Clear()
txt4.Clear()
txt5.Clear()
txt6.Clear()
txt1.Focus()|>ignore
)
//Insert record into DataBase sqlserver
btn1.Click.Add(fun _->
con.Open()
com1.Connection <- con
com1.CommandText <- "insert into EmployeeInfo values"+txt1.Text+",'"+txt2.Text+"','"+txt3.Text+"','"+txt4.Text+"','"+txt5.Text+"','"+txt6.Text+"'"
MessageBox.Show("Record Inserted Successfully")|>ignore
com1.ExecuteNonQuery()|> ignore
con.Close()
)
Application.Run(MyForm)
Step 5:
Debug the application by pressing F5 to execute the Windows Forms application.
Output
Output in database
Summary
This article explained how to connect with the SQL Server database and work with the Windows Forms application using F#. The article also showd how the values are saved from the Windows Forms application to a SQL Server database.