கட்டுரையில் C
sharp மொழியில் எவ்வாறு ஒரு டேட்டா பேஸை கையாளுவது எனக் காண்போம்.
முதலில் sql
server management studio சென்று ஒரு db crud எங்கின்ற பெயரில் டேட்டா பேசை உருவாக்கவும்.
பிறகு அதற்கு டேபிள் உருவாக்கவும்.டேபிளின்
பெயராக contact என்று பின் வருமாரு உருவாக்கவும்.
பின்பு stored
procedure என்பதில் வலது க்ளிக் செய்து create new stored procedure என்பதை தேர்ந்தெடுக்கவும்.
பின்பு பின் வருமாரு கோடிங் எழுதி execute செய்தால் stored procedure உருவாகும். அதன்
பெயரக dbo.ContactAddOrEdit என இருக்கும்.
USE [dbcrud]
GO
/****** Object: StoredProcedure [dbo].[ContactAddOrEdit] Script Date: 6/21/2017 11:35:00 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROC [dbo].[ContactAddOrEdit]
@mode varchar(20),
@ContactID int,
@Name varchar(50),
@Mobile varchar(50),
@Address varchar(250)
AS
BEGIN
IF @mode = 'Add'
BEGIN
INSERT INTO Contact
(
Name,
Mobile,
Address
)
VALUES
(
@Name,
@Mobile,
@Address
)
END
ELSE
BEGIN
UPDATE Contact
SET
Name = @Name,
Mobile = @Mobile,
Address = @Address
WHERE ContactID = @ContactID
END
END
பிறகு ContactDeleteByID எங்கின்ற பெயரில் ஒரு stored procedure உருவாக்கவும்.
அதன் கோடிங் பின் வருமாரு இருக்கட்டும்.
USE [dbcrud]
GO
/****** Object: StoredProcedure [dbo].[ContactDeleteByID] Script Date: 6/21/2017 11:43:07 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROC [dbo].[ContactDeleteByID]
@ContactID int
AS BEGIN
DELETE FROM Contact
WHERE ContactID = @ContactID
END
பிறகு ContactViewAllOrSearch எங்கின்ற பெயரில் ஒரு ஸ்டோர்டு ப்ரசிசர் உருவாக்க்கவும். அதன் கோடிங்
பின் வருமாறு இருக்கட்டும்.
USE [dbcrud]
GO
/****** Object: StoredProcedure
[dbo].[ContactViewAllOrSearch] Script
Date: 6/21/2017 11:46:30 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROC [dbo].[ContactViewAllOrSearch]
@SearchText VARCHAR(50)
AS BEGIN
SELECT *
FROM Contact
WHERE @SearchText='' OR
NAME LIKE '%'+@SearchText+'%'
END
பின்பு visual studio சென்று கீழே
உள்ள படத்தில் உள்ளது போல் ஒரு ஃபார்ம் உருவாக்கவும். அதில் படத்தில் உள்ளவாறு
label,textbox,button,gridview போன்றவற்றை உருவாக்கவும். டெக்ஸ்ட் பாக்ஸ்களுக்குபெயராக
txtName,txtMobile,txtAddress,txtSearch என கொடுக்க்கவும்.பட்டன்களுக்கு
btnSave,btnDelete,btnReset என பெயரிடவும்.gridview –க்கு dgvContact என பெயரிடவும்.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace crud
{
public partial class Form1 : Form
{
SqlConnection sqlCon = new SqlConnection(@"Data
Source=.;initial Catalog=dbcrud;Integrated Security= True;");
int ContactId;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Reset();
FillDataGridView();
}
private void btnSave_Click(object sender, EventArgs e)
{
try
{
if (sqlCon.State == ConnectionState.Closed)
{
sqlCon.Open();
}
if (btnSave.Text == "save")
{
SqlCommand sqlcmd = new SqlCommand("ContactAddOrEdit",
sqlCon);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.AddWithValue("@mode", "Add");
sqlcmd.Parameters.AddWithValue("@ContactId", ContactId);
sqlcmd.Parameters.AddWithValue("@Name", txtName.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Mobile", txtMobile.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
sqlcmd.ExecuteNonQuery();
MessageBox.Show("saved successfully");
Reset();
FillDataGridView();
}
else
{
SqlCommand sqlcmd = new SqlCommand("ContactAddOrEdit",
sqlCon);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.AddWithValue("@mode", "update");
sqlcmd.Parameters.AddWithValue("@ContactId", ContactId);
sqlcmd.Parameters.AddWithValue("@Name", txtName.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Mobile",
txtMobile.Text.Trim());
sqlcmd.Parameters.AddWithValue("@Address", txtAddress.Text.Trim());
sqlcmd.ExecuteNonQuery();
MessageBox.Show("updated
successfully");
Reset();
FillDataGridView();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
sqlCon.Close();
}
}
void FillDataGridView()
{
if (sqlCon.State == ConnectionState.Closed)
{
sqlCon.Open();
}
SqlDataAdapter SqlDa = new SqlDataAdapter("ContactViewAllOrSearch", sqlCon);
SqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlDa.SelectCommand.Parameters.AddWithValue("@SearchText",
txtSrearch.Text.Trim());
DataTable dt = new DataTable();
SqlDa.Fill(dt);
dgvContact.DataSource = dt;
dgvContact.Columns[0].Visible = false;
}
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
FillDataGridView();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void dgvContact_DoubleClick(object sender, EventArgs e)
{
if (dgvContact.CurrentRow.Index != -1)
{
ContactId = Convert.ToInt32(dgvContact.CurrentRow.Cells[0].Value.ToString());
txtName.Text =
dgvContact.CurrentRow.Cells[1].Value.ToString();
txtMobile.Text =
dgvContact.CurrentRow.Cells[2].Value.ToString();
txtAddress.Text =
dgvContact.CurrentRow.Cells[3].Value.ToString();
btnSave.Text = "Update";
btnDelete.Enabled = true;
}
}
void Reset()
{
txtName.Text = txtMobile.Text =
txtAddress.Text = " ";
btnSave.Text = "save";
ContactId = 0;
}
private void btnReset_Click(object sender, EventArgs e)
{
Reset();
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (sqlCon.State == ConnectionState.Closed)
{
sqlCon.Open();
}
SqlCommand sqlcmd = new SqlCommand("ContactDeleteByID", sqlCon);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.AddWithValue("@ContactID",
ContactId);
sqlcmd.ExecuteNonQuery();
MessageBox.Show("Deleted
sucessfully");
Reset();
FillDataGridView();
}
}
}
இப்போது நிரலை இயக்கவும்.
txtsearch
textbox-ல் பெயர் கொடுத்து search பட்டனை சொடுக்கினால் மேலே உள்ளவாறு இருக்கும்.
புதிதாக record உருவாக
textbox-ல் இன்புட் செய்து save பட்டனை சொடுக்கினால் புதிய redord ஆனது save ஆகும். Grid view –ல் உள்ள
டெக்ஸ்ட் பாக்ஸில் ஒரு ரோவில் க்ளிக் செய்தால் விவரங்கள் text box –களில் காண்பிக்கப்படும்.
Update செய்யவோ அல்லது delete செய்வதோ செய்யலாம்.
------------முத்து கார்த்திகேயன்,மதுரை.