Click here to Skip to main content
15,910,981 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
In this code I'm not able to bind gridview.
When record is saving to database, it is saving two times.

Please check my code and correct it.
I cannot find the problem.

C#
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;
using System.Data;
namespace Insurance
{
    public partial class Create_New_Customer : System.Web.UI.Page
    {
        DataSet ds = new DataSet();
        SqlConnection con;
        SqlCommand cmd = new SqlCommand();
        SqlParameter sp1 = new SqlParameter();
        SqlParameter sp2 = new SqlParameter();
        SqlParameter sp3 = new SqlParameter();
        SqlParameter sp4 = new SqlParameter();
        SqlParameter sp5 = new SqlParameter();
        SqlParameter sp6 = new SqlParameter();
        SqlParameter sp7 = new SqlParameter();
      
        protected void Page_Load(object sender, EventArgs e)
        {
         }
        protected void btnSave_Click1(object sender, EventArgs e)
        { con = new SqlConnection("Data Source=NSEZ-DD4-028;Initial Catalog=Insurance;Integrated Security= SSPI");
         
            cmd = new SqlCommand("Create_Customer", con);
            cmd.CommandType = CommandType.StoredProcedure;
            con.Open();
            cmd.Connection = con;
            cmd.Parameters.Add("@First_Name", SqlDbType.VarChar).Value = txtFirstName.Text.ToString();
            cmd.Parameters.Add("@Last_Name", SqlDbType.VarChar).Value = txtLastName.Text.ToString();
            cmd.Parameters.Add("@Address1", SqlDbType.VarChar).Value = txtAddress.Text.ToString();
            cmd.Parameters.Add("@City", SqlDbType.VarChar).Value = txtCity.Text.ToString();
            cmd.Parameters.Add("@State", SqlDbType.VarChar).Value = txtState.Text.ToString();
            cmd.Parameters.Add("@Zip", SqlDbType.Int).Value = txtZip.Text;
            cmd.Parameters.Add("@Country", SqlDbType.VarChar).Value = txtCountry.Text.ToString();
            SqlDataReader MyDataReader = cmd.ExecuteReader();
          
            MyDataReader.Close();
            cmd.ExecuteNonQuery();
            con.Close();


            con = new SqlConnection("Data Source=NSEZ-DD4-028;Initial Catalog=Insurance;Integrated Security= SSPI");
         
            cmd = new SqlCommand("Create_Customer_All", con);
            cmd.CommandType = CommandType.StoredProcedure;
            con.Open();
            cmd.Connection = con;
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(ds);
            gridviewCustomer.DataSource = ds;
            gridviewCustomer.DataBind();
            con.Close();
      }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            txtFirstName.Text = "";
            txtLastName.Text = "";
            txtAddress.Text = "";
            txtCity.Text = "";
            txtState.Text = "";
            txtZip.Text = "";
            txtCountry.Text = "";
        }
        protected void btnMainWindow_Click(object sender, EventArgs e)
        {
            Response.Redirect("Main.aspx");
       }
        protected void txtCity_TextChanged(object sender, EventArgs e)
        {
        }
}
}
Posted
Updated 29-Nov-10 21:54pm
v3
Comments
Sunasara Imdadhusen 30-Nov-10 0:54am    
Please check value for ds (adapter.Fill(ds);) will filled dataset with value?
goelhima 30-Nov-10 1:16am    
in dataset records saved in table is showing...but not binding with gridview?
Dalek Dave 30-Nov-10 3:54am    
Edited for Grammar and Syntax.

Change the following line:
C#
gridviewCustomer.DataSource = ds;
           gridviewCustomer.DataBind();


to
C#
gridviewCustomer.DataSource = ds.Tables[0];
// OR
// gridviewCustomer.DataSource = ds.Tables["myTable"];
           gridviewCustomer.DataBind();
 
Share this answer
 
Comments
Dalek Dave 30-Nov-10 3:54am    
Oh well spotted.
Hi,

you don't need the SQLDataReader when you want to execute the executenonquery

Remove the following lines of code also.
SqlDataReader MyDataReader = cmd.ExecuteReader();

MyDataReader.Close();
 
Share this answer
 
/*Use Like It Hope your Problem will be sort out */


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;
using System.Data;
namespace Insurance
{
public partial class Create_New_Customer : System.Web.UI.Page
{
DataSet ds = new DataSet();
SqlConnection con;
SqlCommand cmd = new SqlCommand();
SqlParameter sp1 = new SqlParameter();
SqlParameter sp2 = new SqlParameter();
SqlParameter sp3 = new SqlParameter();
SqlParameter sp4 = new SqlParameter();
SqlParameter sp5 = new SqlParameter();
SqlParameter sp6 = new SqlParameter();
SqlParameter sp7 = new SqlParameter();

protected void Page_Load(object sender, EventArgs e)
{


if(!IsPostBack)
{
BindGridView();
}

}
protected void btnSave_Click1(object sender, EventArgs e)
{
con = new SqlConnection("Data Source=NSEZ-DD4-028;

Initial Catalog=Insurance;Integrated Security= SSPI");

cmd = new SqlCommand("Create_Customer", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Connection = con;
cmd.Parameters.Add("@First_Name", SqlDbType.VarChar).Value = txtFirstName.Text.ToString();
cmd.Parameters.Add("@Last_Name", SqlDbType.VarChar).Value = txtLastName.Text.ToString();
cmd.Parameters.Add("@Address1", SqlDbType.VarChar).Value = txtAddress.Text.ToString();
cmd.Parameters.Add("@City", SqlDbType.VarChar).Value = txtCity.Text.ToString();
cmd.Parameters.Add("@State", SqlDbType.VarChar).Value = txtState.Text.ToString();
cmd.Parameters.Add("@Zip", SqlDbType.Int).Value = txtZip.Text;
cmd.Parameters.Add("@Country", SqlDbType.VarChar).Value = txtCountry.Text.ToString();
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Clear();
BindGridView();



}
Void BindGridView()
{
con = new SqlConnection("Data Source=NSEZ-DD4-028;Initial Catalog=Insurance;Integrated Security= SSPI");

cmd = new SqlCommand("Create_Customer_All", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Connection = con;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds);
gridviewCustomer.DataSource = ds;
gridviewCustomer.DataBind();
con.Close();
}

protected void btnCancel_Click(object sender, EventArgs e)
{
Clear();
}
Void Clear()
{
MIDL
txtFirstName.Text = "";
         txtLastName.Text = "";
         txtAddress.Text = "";
         txtCity.Text = "";
         txtState.Text = "";
         txtZip.Text = "";
         txtCountry.Text = "";


}
protected void btnMainWindow_Click(object sender, EventArgs e)
{
Response.Redirect("Main.aspx");
}
protected void txtCity_TextChanged(object sender, EventArgs e)
{
}
}
}
 
Share this answer
 
thanq u soo much for ur help :)

its done....i firstly removed reader , than opened new connection for gridview :)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900