i have one textbox and gridview....the value which i enter into textbox first store into database and then it displays into the grid view through database...but i have to click twice to display value in gridview why m getting this problem.....my code is as below
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class statemaster : System.Web.UI.Page
{
dbClass myobj = new dbClass();
public SqlConnection sqlcon = new SqlConnection();
string mystr;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
fillgrid();
}
}
public void fillgrid()
{
myobj.myconnection();
string sqlQuery = ("select ID, State_name from state");
SqlDataAdapter sqlda = new SqlDataAdapter(sqlQuery, myobj.sqlcon);
DataSet myds = new DataSet();
sqlda.Fill(myds, "table0");
GridView1.DataSource = myds;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
myobj.myconnection();
SqlCommand sqlcmd = new SqlCommand("Insert into state(State_name) values ('" + TextBox1.Text + "')", myobj.sqlcon);
sqlcmd.ExecuteNonQuery();
fillgrid();
GridView1.DataBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
myobj.myconnection();
int ID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values["ID"].ToString());
//string State_name = GridView1.DataKeys[e.RowIndex].Values["State_name"].ToString();
SqlCommand cmd = new SqlCommand("delete from state where ID="+ID, myobj.sqlcon);
cmd.ExecuteNonQuery();
fillgrid();
GridView1.DataBind();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
myobj.myconnection();
mystr = "select * from state where id = '" + GridView1.SelectedValue .ToString () + "'";
SqlCommand cmd = new SqlCommand(mystr, myobj.sqlcon);
SqlDataReader sqldr = cmd.ExecuteReader();
sqldr.Read ();
if (sqldr.HasRows)
{
TextBox1.Text = sqldr["State_name"].ToString();
}
else
{
TextBox1.Text = "";
}
}
}