Monday, July 24, 2017

சி ஷார்ப்பில் CRUD பயன்பாடு.


 

கட்டுரையில் C sharp மொழியில் எவ்வாறு ஒரு டேட்டா பேஸை கையாளுவது எனக் காண்போம்.

முதலில் sql server management studio சென்று ஒரு db crud எங்கின்ற பெயரில் டேட்டா பேசை உருவாக்கவும். பிறகு அதற்கு  டேபிள் உருவாக்கவும்.டேபிளின் பெயராக contact என்று பின் வருமாரு உருவாக்கவும்.
 

ContactID என்பதை வலது க்ளிக் செய்து Set primary key என்பதை தேர்ந்தெடுக்கவும்.கீழே உள்ள column properties சென்று identity specication என்பதில் is identity என்பதில் yes கொடுக்கவும்.identity increment,identity seed என்பதில் இரண்டிலும் 1 என்று கொடுக்கவும்.


பின்பு 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 செய்வதோ செய்யலாம்.


------------முத்து கார்த்திகேயன்,மதுரை.

 
ads Udanz