Hi ada20,
Refer below sample.
HTML
Numeric Value :
<asp:TextBox ID="txtNumber" runat="server"></asp:TextBox>
<br />
<asp:Button Text="Insert" runat="server" OnClick="Save" />
<br />
<asp:GridView ID="gvDecimalValues" runat="server" AutoGenerateColumns="false" DataKeyNames="Id"
OnRowEditing="OnRowEditing" OnRowCancelingEdit="OnRowCancelingEdit" OnRowUpdating="OnRowUpdating">
<Columns>
<asp:TemplateField HeaderText="Value">
<ItemTemplate>
<asp:Label ID="lblValue" runat="server" Text='<%# Eval("Value") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtValue" runat="server" Text='<%# Eval("Value") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Link" ShowEditButton="true" ShowDeleteButton="true" />
</Columns>
</asp:GridView>
Namespaces
C#
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
VB.Net
Imports System.Data.SqlClient
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
BindGrid();
}
}
protected void Save(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
SqlCommand cmd = new SqlCommand("INSERT INTO Testdt VALUES(@Value)", con);
cmd.Parameters.AddWithValue("@Value", Convert.ToDecimal(txtNumber.Text));
con.Open();
cmd.ExecuteNonQuery();
con.Close();
BindGrid();
}
public void BindGrid()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
SqlCommand cmd = new SqlCommand("SELECT * FROM Testdt", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
gvDecimalValues.DataSource = dt;
gvDecimalValues.DataBind();
}
protected void OnRowEditing(object sender, GridViewEditEventArgs e)
{
gvDecimalValues.EditIndex = e.NewEditIndex;
this.BindGrid();
}
protected void OnRowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = gvDecimalValues.Rows[e.RowIndex];
int id = Convert.ToInt32(gvDecimalValues.DataKeys[e.RowIndex].Values[0]);
string value = (row.FindControl("txtValue") as TextBox).Text;
string query = "UPDATE Testdt SET Value=@Value WHERE Id=@Id";
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Parameters.AddWithValue("@Id", id);
cmd.Parameters.AddWithValue("@Value", value);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
gvDecimalValues.EditIndex = -1;
this.BindGrid();
}
protected void OnRowCancelingEdit(object sender, EventArgs e)
{
gvDecimalValues.EditIndex = -1;
this.BindGrid();
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
BindGrid()
End If
End Sub
Protected Sub Save(ByVal sender As Object, ByVal e As EventArgs)
Dim con As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("constr").ConnectionString)
Dim cmd As SqlCommand = New SqlCommand("INSERT INTO Testdt VALUES(@Value)", con)
cmd.Parameters.AddWithValue("@Value", Convert.ToDecimal(txtNumber.Text))
con.Open()
cmd.ExecuteNonQuery()
con.Close()
BindGrid()
End Sub
Public Sub BindGrid()
Dim con As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("constr").ConnectionString)
Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM Testdt", con)
Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt As DataTable = New DataTable()
da.Fill(dt)
gvDecimalValues.DataSource = dt
gvDecimalValues.DataBind()
End Sub
Protected Sub OnRowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
gvDecimalValues.EditIndex = e.NewEditIndex
Me.BindGrid()
End Sub
Protected Sub OnRowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
Dim row As GridViewRow = gvDecimalValues.Rows(e.RowIndex)
Dim id As Integer = Convert.ToInt32(gvDecimalValues.DataKeys(e.RowIndex).Values(0))
Dim value As String = (TryCast(row.FindControl("txtValue"), TextBox)).Text
Dim query As String = "UPDATE Testdt SET Value=@Value WHERE Id=@Id"
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand(query)
cmd.Parameters.AddWithValue("@Id", id)
cmd.Parameters.AddWithValue("@Value", value)
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
gvDecimalValues.EditIndex = -1
Me.BindGrid()
End Sub
Protected Sub OnRowCancelingEdit(ByVal sender As Object, ByVal e As EventArgs)
gvDecimalValues.EditIndex = -1
Me.BindGrid()
End Sub
Screenshot
