Hi donalduko,
Refer below example.
Database
CREATE TABLE tblUser
(
Id INT IDENTITY PRIMARY KEY,
UserId VARCHAR(100) NOT NULL,
Password VARCHAR(100) NOT NULL
)
CREATE TABLE tblWallet
(
Id INT IDENTITY PRIMARY KEY,
UserId VARCHAR(100) NOT NULL,
Amount DECIMAL(18,2) NOT NULL
)
HTML
<table>
<tr>
<td>UserId</td>
<td><asp:TextBox runat="server" ID="txtUserId" /></td>
</tr>
<tr>
<td>Passowrd</td>
<td><asp:TextBox runat="server" ID="txtPassword" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:Button Text="Sign Up" runat="server" OnClick="OnSignUp" />
</td>
</tr>
</table>
<hr />
<table>
<tr>
<td>UserId</td>
<td><asp:TextBox runat="server" ID="txtEmail" /></td>
</tr>
<tr>
<td>Amount</td>
<td><asp:TextBox runat="server" ID="txtAmount" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<asp:Button ID="btnAdd" Text="Add Amount" runat="server" OnClick="OnAdd" />
</td>
</tr>
</table>
<hr />
<asp:GridView runat="server" ID="gvUserWallet" AutoGenerateColumns="false" EmptyDataText="No record.">
<Columns>
<asp:BoundField DataField="UserId" HeaderText="Email" />
<asp:BoundField DataField="Amount" HeaderText="Amount" DataFormatString="{0:N0}" />
</Columns>
</asp:GridView>
Namespaces
C#
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
VB.Net
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindWalletData();
}
}
protected void OnSignUp(object sender, EventArgs e)
{
int i = 0;
// Insert on User Table.
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO tblUser VALUES(@Id, @Password)"))
{
cmd.Parameters.AddWithValue("@Id", txtUserId.Text.Trim());
cmd.Parameters.AddWithValue("@Password", txtPassword.Text.Trim());
cmd.Connection = con;
con.Open();
i = cmd.ExecuteNonQuery();
con.Close();
}
}
if (i > 0)
{
// If new user inserted, Wallet table will be inserted with zero amount.
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO tblWallet VALUES(@Id, @Amount)"))
{
cmd.Parameters.AddWithValue("@Id", txtUserId.Text.Trim());
cmd.Parameters.AddWithValue("@Amount", 0);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
BindWalletData();
}
protected void OnAdd(object sender, EventArgs e)
{
decimal amount;
object isExist;
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT Amount FROM tblWallet WHERE UserId = @Id"))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Id", txtEmail.Text.Trim());
con.Open();
isExist = cmd.ExecuteScalar();
con.Close();
}
}
if (isExist != null)
{
amount = Convert.ToDecimal(isExist) + Convert.ToDecimal(txtAmount.Text.Trim());
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("UPDATE tblWallet SET Amount = @Amout WHERE UserId = @Id"))
{
cmd.Parameters.AddWithValue("@Id", txtEmail.Text.Trim());
cmd.Parameters.AddWithValue("@Amout", amount);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
else
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "", "alert('User Not exist.')", true);
}
BindWalletData();
}
private void BindWalletData()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string query = "SELECT * FROM tblWallet";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
sda.Fill(dt);
gvUserWallet.DataSource = dt;
gvUserWallet.DataBind();
}
}
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
BindWalletData()
End If
End Sub
Protected Sub OnSignUp(ByVal sender As Object, ByVal e As EventArgs)
Dim i As Integer = 0
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("INSERT INTO tblUser VALUES(@Id, @Password)")
cmd.Parameters.AddWithValue("@Id", txtUserId.Text.Trim())
cmd.Parameters.AddWithValue("@Password", txtPassword.Text.Trim())
cmd.Connection = con
con.Open()
i = cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
If i > 0 Then
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("INSERT INTO tblWallet VALUES(@Id, @Amount)")
cmd.Parameters.AddWithValue("@Id", txtUserId.Text.Trim())
cmd.Parameters.AddWithValue("@Amount", 0)
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
End If
BindWalletData()
End Sub
Protected Sub OnAdd(ByVal sender As Object, ByVal e As EventArgs)
Dim amount As Decimal
Dim isExist As Object
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("SELECT Amount FROM tblWallet WHERE UserId = @Id")
cmd.Connection = con
cmd.Parameters.AddWithValue("@Id", txtEmail.Text.Trim())
con.Open()
isExist = cmd.ExecuteScalar()
con.Close()
End Using
End Using
If isExist IsNot Nothing Then
amount = Convert.ToDecimal(isExist) + Convert.ToDecimal(txtAmount.Text.Trim())
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("UPDATE tblWallet SET Amount = @Amout WHERE UserId = @Id")
cmd.Parameters.AddWithValue("@Id", txtEmail.Text.Trim())
cmd.Parameters.AddWithValue("@Amout", amount)
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
Else
ClientScript.RegisterClientScriptBlock(Me.[GetType](), "", "alert('User Not exist.')", True)
End If
BindWalletData()
End Sub
Private Sub BindWalletData()
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Dim query As String = "SELECT * FROM tblWallet"
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand(query)
cmd.Connection = con
Using sda As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt As DataTable = New DataTable()
sda.Fill(dt)
gvUserWallet.DataSource = dt
gvUserWallet.DataBind()
End Using
End Using
End Using
End Sub
Screenshot
![](https://i.imgur.com/m1v3MCp.gif)