I am trying to create a simple library database. I list the search results in gridview, then I have a text box and a button, the user enters a button with isbn and clicks clips. Then, if the number of items is sufficient (itemNumber> 0), it is loaned by the user. Here is a screenshot of the user interface:

My question is: when the user clicks the loan button, the loan may or may not be successful. In both cases, I print a message about whether the loan is successful or not, and also want the updated gridview to be displayed. The problem is that after clicking the loan button the gridview disappears and I just see the text box, button and message on the screen. How can I show an updated version of gridview after clicking the loan button?
Here is the code file:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SearchResults.aspx.cs" Inherits="Pages_SearchResults" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ISBN" DataSourceID="SqlDataSource1" onselectedindexchanged="GridView1_SelectedIndexChanged" onrowcommand="GridView1_RowCommand"> <Columns> <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> <asp:BoundField DataField="ISBN" HeaderText="ISBN" ReadOnly="True" SortExpression="ISBN" /> <asp:BoundField DataField="AuthorName" HeaderText="AuthorName" SortExpression="AuthorName" /> <asp:BoundField DataField="AuthorlName" HeaderText="AuthorlName" SortExpression="AuthorlName" /> <asp:BoundField DataField="ItemType" HeaderText="ItemType" SortExpression="ItemType" /> <asp:BoundField DataField="PublishYear" HeaderText="PublishYear" SortExpression="PublishYear" /> <asp:BoundField DataField="numOfCopies" HeaderText="Number of Copies" SortExpression="numOfCopies" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Items] WHERE ([Title] LIKE '%' + @Title + '%')"> <SelectParameters> <asp:FormParameter FormField="tSearchBox" Name="Title" Type="String" /> </SelectParameters> </asp:SqlDataSource> <br /> <asp:Label ID="Label1" runat="server" Text="Type ISBN to loan:"></asp:Label>
And here is the .cs file:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; public partial class Pages_SearchResults : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { Response.Redirect("Default.aspx"); } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Users\\SUUSER\\Documents\\Visual Studio 2010\\Projects\\Library\\LibWebSite\\App_Data\\LibDatabase.mdf;Integrated Security=True;User Instance=True"; Int32 verify; string title = GridView1.HeaderRow.Cells[0].Text, isbn = GridView1.HeaderRow.Cells[1].Text, name = GridView1.HeaderRow.Cells[2].Text, lname = GridView1.HeaderRow.Cells[3].Text, type = GridView1.HeaderRow.Cells[4].Text, year = GridView1.HeaderRow.Cells[5].Text; } protected void bLoanButton_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Users\\SUUSER\\Documents\\Visual Studio 2010\\Projects\\Library\\LibWebSite\\App_Data\\LibDatabase.mdf;Integrated Security=True;User Instance=True"; string user = "select CurrentID from CurrentUser"; SqlCommand cmd1 = new SqlCommand(user, con); con.Open(); string get = cmd1.ExecuteScalar().ToString(); string query1 = "insert into LoanTable(StudId,ISBN,onBorrow) values (" + "'" + get + "'" + "," + "'" + tLoanBox.Text + "'" + "," + "'" + "1" + "'" + ")"; string numQuery = "select numOfCopies from Items where ISBN='" + tLoanBox.Text + "'"; SqlCommand cmdnumQuery = new SqlCommand(numQuery, con); SqlCommand cmd2 = new SqlCommand(query1, con); int result; int num=Convert.ToInt32(cmdnumQuery.ExecuteScalar()); result = cmd2.ExecuteNonQuery(); if (num > 0) { if (result > 0) Response.Redirect("LoanSuccesfull.aspx"); } else notAvailable.Visible = true; con.Close(); } }
And here is the code for the credit button:
protected void bLoanButton_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(); con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Users\\SUUSER\\Documents\\Visual Studio 2010\\Projects\\Library\\LibWebSite\\App_Data\\LibDatabase.mdf;Integrated Security=True;User Instance=True"; string user = "select CurrentID from CurrentUser"; SqlCommand cmd1 = new SqlCommand(user, con); con.Open(); string get = cmd1.ExecuteScalar().ToString(); string query1 = "insert into LoanTable(StudId,ISBN,onBorrow) values (" + "'" + get + "'" + "," + "'" + tLoanBox.Text + "'" + "," + "'" + "1" + "'" + ")"; SqlCommand cmd2 = new SqlCommand(query1, con); int result; result = cmd2.ExecuteNonQuery(); if (result > 0) { loanSuccesful.Visible = true; Response.Redirect("LoanSuccesfull.aspx"); } con.Close(); }
I appreciate any help. Thanks