0% found this document useful (0 votes)
7 views

Wpfdata

The document describes how to create a new WPF project in Visual Studio, design the application using controls like labels and textboxes, bind data to a datagrid from a SQL database, and perform CRUD operations by adding, updating, and deleting records from the datagrid and database.

Uploaded by

Shashi Campher
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Wpfdata

The document describes how to create a new WPF project in Visual Studio, design the application using controls like labels and textboxes, bind data to a datagrid from a SQL database, and perform CRUD operations by adding, updating, and deleting records from the datagrid and database.

Uploaded by

Shashi Campher
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

Create New WPF Project

Step 1: Click Start All Program Microsoft Visual Studio 2010 Microsoft Visual St
udio 2010
Step 2: Click

New Project

Step 3: Under

Visual C#

Windows WPF Application

Give application name for your new WPF applications, mention the location and so
lution name.
Start Designing and Programming using WPF
Designing windows or web application is quite easy and interesting also. Let s sta
rt designing our first application using WPF.

WPF will generate XAML tags similar to HTML. Here I have used the below mentione
d tools for design:
fName_lbl -> First Name Label
fName_Txt -> Textbox
lName_lbl -> Last Name Label
lName_Txt -> Textbox
DOB_lbl -> Date of Birth Label
DOB_Txt -> Date Picker
City_lbl -> City Label
City_Txt -> Combo Box
New_Btn -> New Button
Add_Btn -> Add Button
Del_Btn -> Delete Button
Update_Btn -> Update Button
Datagrid1
Databinding to Datagrid1
r binding.

in WPF is simple, in this example, I have used ADO.NET fo

Collapse | Copy Code


<datagrid width="481" height="199" name="dataGrid1"
selectedcellschanged="dataGrid1_SelectedCellsChanged"
canuserresizerows="False" loaded="dataGrid1_Loaded"
itemssource="{Binding Path=MyDataBinding}" verticalalignment="Top"
margin="14,65,0,0" horizontalalignment="Left" grid.row="4" autogeneratecolumns="
False">
<datagrid.columns>
<datagridtextcolumn width="120" isreadonly="True"
header="First Name" binding="{Binding Path=fName}">
<datagridtextcolumn width="110" isreadonly="True"
header="Last Name" binding="{Binding Path=lName}">
<datagridtextcolumn width="150" isreadonly="True"
header="Date Of Birth" binding="{Binding Path=DOB}">
<datagridtextcolumn width="90" isreadonly="True"
header="City" binding="{Binding Path=City}">
</datagridtextcolumn></datagridtextcolumn><
/datagridtextcolumn></datagridtextcolumn></datagrid.columns>
</datagrid>

We can bind the data to datagrid by assigning it to datagrid s ItemsSource and menti
on the data path which will connect to database to get the data. This is an add
on feature in WPF.
App.config is a configuration file which will have the setting and other stuff f
or an application. Here, I have used this to store the database connectionstring
and it is as follows:
Collapse | Copy Code
<configuration>
<connectionstrings>
<add name="ConnectionString1"
connectionstring="Data Source=(Database file location goes here)
\DatabindusingWPF.sdf; Password=test@123; Persist Security Info=False;"
>
</add></connectionstrings>
</configuration>
Here, I have used SQL Server Compact 3.5 sp1 as my data source so we have to giv
e the exact path of the database file where it is stored. (Note: You need to giv
e exact path of the database file to make this code work).
Whenever we add, delete, update datagrid has to be changed accordingly, so I cre
ated a public method named BindGrid() .
Collapse | Copy Code
// Establishing Connection String from Configuration File
string _ConnectionString = ConfigurationManager.ConnectionStrings
["ConnectionString1"].ConnectionString;
public void BindGrid()
{
SqlCeConnection _Conn = new SqlCeConnection(_ConnectionString);
// Open the Database Connection
_Conn.Open();
SqlCeDataAdapter _Adapter = new SqlCeDataAdapter("Select * from Details", _C
onn);
DataSet _Bind = new DataSet();
_Adapter.Fill(_Bind, "MyDataBinding");
dataGrid1.DataContext = _Bind;
// Close the Database Connection
_Conn.Close();
}
In the above, I have shown a very simple way to get the SQL connection string wh
ich will connect to database and used dataset to bind the data to datagrid. The
below code will add new record using the values from the textbox.
Add New Record
To add new record on database, I had used simple insert query and it will be pop
ulated in the datagrid. The below will do the trick:
Collapse | Copy Code
private void Add_Btn_Click(object sender, RoutedEventArgs e)
{
try

{
SqlCeConnection _Conn = new SqlCeConnection(_ConnectionString);
// Open the Database Connection
_Conn.Open();
string _Date = DOB_Txt.DisplayDate.ToShortDateString();
// Command String
string _Insert = @"insert into Details
(fName,lName,DOB,City)
Values('" + fName_Txt.Text + "','" + lName_Txt.Text +
"','" +
_Date.ToString() + "','" + City_Txt.Text + "')";
// Initialize the command query and connection
SqlCeCommand _cmd = new SqlCeCommand(_Insert, _Conn);
// Execute the command
_cmd.ExecuteNonQuery();
MessageBox.Show("One Record Inserted");
fName_Txt.Text = string.Empty;
lName_Txt.Text = string.Empty;
DOB_Txt.Text = string.Empty;
City_Txt.Text = string.Empty;
this.BindGrid();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
To store only date into the database, here I have used
es trim the time.

ToShortDateString

which giv

Collapse | Copy Code


string _Date = DOB_Txt.DisplayDate.ToShortDateString();
To confirm that a record has been added, I have a messagebox with the message One
Record Inserted and once you click Ok , you should see the added record to be liste
d in datagrid (refer to the below image).

Collapse | Copy Code


private void Del_Btn_Click(object sender, RoutedEventArgs e)
{
try
{
SqlCeConnection _conn = new SqlCeConnection(_ConnectionString);
// Open Database Connection
_conn.Open();
// Command String
string _DelCmd = @"Delete from Details

Where fName='" + fName_Txt.Text + "'";


// Initialize the command query and connection
SqlCeCommand _CmdDelete = new SqlCeCommand(_DelCmd, _conn);
// Execute the command
_CmdDelete.ExecuteNonQuery();
MessageBox.Show("One Record Deleted");
fName_Txt.Text = string.Empty;
lName_Txt.Text = string.Empty;
DOB_Txt.Text = string.Empty;
City_Txt.Text = string.Empty;
this.BindGrid();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
To update the existing data, just double click on the record on the datagrid and
the values will be edited, will be listed in their respective textboxes as show
n in the below image:

The below code will perform editing the datagrid value:


Collapse | Copy Code
DataRowView _DataView = dataGrid1.CurrentCell.Item as DataRowView;
if (_DataView != null)
{
fName_Txt.Text = _DataView.Row[0].ToString();
fName_Txt.IsEnabled = false;
lName_Txt.Text = _DataView.Row[1].ToString();
DOB_Txt.Text = _DataView.Row[2].ToString();
City_Txt.Text = _DataView.Row[3].ToString();
}
Here I have used DataRowView to read the currentcell of the datagrid and fetch eac
h cell value and have assigned it to a textbox.
You can t change the first name as we are using its value as primary key in the da
tabase, so you can change on the other available fields. In this example, I have
changed the last name to Sellamuthu .

Update Code
Collapse | Copy Code
private void Update_Btn_Click(object sender, RoutedEventArgs e)
{
try
{
SqlCeConnection _Conn = new SqlCeConnection(_ConnectionString);
// Open Database Connection
_Conn.Open();

string _Date = DOB_Txt.DisplayDate.ToShortDateString();


// Command String
string _UpdateCmd = @"Update Details Set
lName = '" + lName_Txt.Text + "',
DOB = '" + _Date.ToString() + "',
City = '" + City_Txt.Text + "'
where fName = '" + fName_Txt.Text + "'";
// Initialize the command query and connection
SqlCeCommand _CmdUpdate = new SqlCeCommand(_UpdateCmd,_Conn);
// Execute the command
_CmdUpdate.ExecuteNonQuery();
MessageBox.Show("One Record Updated");
fName_Txt.Text = string.Empty;
lName_Txt.Text = string.Empty;
DOB_Txt.Text = string.Empty;
City_Txt.Text = string.Empty;
this.BindGrid();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
I have used Update query to update the record on the database by referring to th
e primary key First Name .

You might also like