Thursday, August 18, 2011

insert ,update ,delete in repeater using asp.net

Friends here i will tell you how we can update,delete and insert data in Repeater it jut like gridview but slightly changing ..
first drag the Repeater then at client side write below code..

Client side code:

<asp:Repeater ID="repeater" runat="server" OnItemCommand="Repeater1_ItemCommand">
    <HeaderTemplate>
    <table border="1" cellpadding="5" cellspacing="2">
    <tr bgcolor="#993333">
    <td>Name</td>
    <td>Age</td>
    <td>Gender</td>
    <td>EmailId</td>
   
    </tr>
    </table>
    </HeaderTemplate>
    <ItemTemplate>
    <table border="1" cellspacing="1" cellpadding="5">
    <tr bgcolor="gray">
    <td>
    <asp:Label ID="lblname" runat="server" Text='<%# Eval("Name") %>' Visible="true"></asp:Label>
    <asp:TextBox ID="txtname" runat="server" Text='<%#Eval("Name") %>' Visible="false"></asp:TextBox>
    <asp:Label ID="lbl1" runat="server" Text='<%#Eval("Id") %>' Visible="false"></asp:Label>
     
    </td>
    <td>
    <asp:Label ID="lblage" runat="server" Text='<%# Eval("Age") %>' Visible="true"></asp:Label>
    <asp:TextBox ID="txtage" runat="server" Text='<%#Eval("Age") %>' Visible="false"></asp:TextBox>
   
    </td>
    <td>
    <asp:Label ID="lblgen" runat="server" Text='<%# Eval("Gender") %>' Visible="true"></asp:Label>
    <asp:TextBox ID="txtgender" runat="server" Text='<%#Eval("Gender") %>' Visible="false"></asp:TextBox>
    </td>
    <td>
    <asp:Label ID="lblemail" runat="server" Text='<%# Eval("EmailId") %>' Visible="true"></asp:Label>
    <asp:TextBox ID="txtemail" runat="server" Text='<%#Eval("EmailId") %>' Visible="false"></asp:TextBox>
  
    </td>
    <td>
     <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="Edit">Edit</asp:LinkButton>
     <asp:LinkButton ID="lnkdelete" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="Delete" OnClientClick="return confirmMsg(this.form)">Delete</asp:LinkButton>
     <asp:LinkButton ID="lnkupdate" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="Update" Visible="false">Update</asp:LinkButton>
     <asp:LinkButton ID="lnkcancel" runat="server" CommandArgument='<%#Eval("id") %>' CommandName="Cancel" Visible="false">Cancel</asp:LinkButton>
    
    
    </td>
   
    </tr>
    </table>
  
   
    </ItemTemplate>
   
  
    </asp:Repeater>
------------------------------------------------------------------------------------------------------------
At now Server side:

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 Reapter : System.Web.UI.Page
{
    public SqlConnection con;
    public SqlCommand com;
    public SqlDataAdapter sda;
    public DataSet ds;
    public DataTable dt;
   //string name, age, gender, email;
    //PagedDataSource pds=null;
    protected void Page_Load(object sender, EventArgs e)
    {
        con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["details"]);
        dt = new DataTable();
        if (!IsPostBack)
        {
            bindinfo();
         }
        Label1.Enabled = false;
        Label2.Enabled = false;
        Label3.Enabled = false;
        Label4.Enabled = false;
        TextBox1.Enabled = false;
        TextBox2.Enabled = false;
        TextBox3.Enabled = false;
        TextBox4.Enabled = false;
        Button1.Enabled = false;
      


    }
    //public int pagenumber
    //{
    //    get
    //    {
    //        if (ViewState["pagenumber"] != null)
    //            return Convert.ToInt32(ViewState["pagenumber"]);
    //        else
    //            return 0;

    //    }
    //    set
    //    {
    //        ViewState["pagenumber"] = value;

    //    }


    //}
    //protected override void OnInit(EventArgs e)
    //{
    //    base.OnInit(e);

    //}
    public void bindinfo()
    {
        sda = new SqlDataAdapter("select * from personal_information where syncoperation <>'D'", con);
        ds = new DataSet();
        sda.Fill(ds);
        //PagedDataSource pagedataitems = new PagedDataSource();
        //DataView dv = new DataView(dt);
        //pagedataitems.DataSource = dv;
        //pagedataitems.AllowPaging = true;
        //pagedataitems.CurrentPageIndex = pagenumber;
        //if (pagedataitems.PageCount > 1)
        //{
        //    repeater.Visible = true;
        //    ArrayList pages = new ArrayList();
        //    for (int i = 0; i < pagedataitems.PageCount; i++)
        //        pages.Add(i + 1).ToString();
        //    repeater.DataSource = pages;
        //    repeater.DataBind();

        //}

        repeater.DataSource = ds;
        repeater.DataBind();
        //else
        //    repeater.Visible = false;
        //repeater.DataSource = pagedataitems;
        //repeater.DataBind();
    

    }
  
  
   



    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        //pagenumber = Convert.ToInt32(e.CommandArgument) - 1;
        //bindinfo();
        if (e.CommandName == "Edit")
        {
            ((Label)e.Item.FindControl("lblname")).Visible = false;
            ((Label)e.Item.FindControl("lblage")).Visible = false;
            ((Label)e.Item.FindControl("lblgen")).Visible = false;
            ((Label)e.Item.FindControl("lblemail")).Visible = false;
            ((Label)e.Item.FindControl("lblimge")).Visible = false;
            ((TextBox)e.Item.FindControl("txtname")).Visible = true;
            ((TextBox)e.Item.FindControl("txtage")).Visible = true;
            ((TextBox)e.Item.FindControl("txtgender")).Visible = true;
            ((TextBox)e.Item.FindControl("txtemail")).Visible = true;
            ((LinkButton)e.Item.FindControl("lnkupdate")).Visible = true;
            ((LinkButton)e.Item.FindControl("lnkcancel")).Visible = true;
            ((LinkButton)e.Item.FindControl("lnkdelete")).Visible = true;




        }
        if (e.CommandName == "Delete")
        {
            string del = ((Label)e.Item.FindControl("lbl1")).Text;
            string de1 = ((Label)e.Item.FindControl("lblname")).Text;
            com = new SqlCommand("deleteinfo", con);
            com.Parameters.AddWithValue("@Id",del);
            com.Parameters.AddWithValue("@Name",de1);
            com.CommandType = CommandType.StoredProcedure;
            con.Open();
            com.ExecuteNonQuery();
            con.Close();

            bindinfo();
            Response.Write("<script>alert('data deleted')</script>");
         


        }
        if (e.CommandName == "Update")
        {
            string str1 = ((TextBox)e.Item.FindControl("txtname")).Text;
            string str2 = ((TextBox)e.Item.FindControl("txtage")).Text;
            string str3 = ((TextBox)e.Item.FindControl("txtgender")).Text;
            string str4 = ((TextBox)e.Item.FindControl("txtemail")).Text;
            string str5 = ((Label)e.Item.FindControl("lbl1")).Text;
            com = new SqlCommand("updatedata", con);
            com.Parameters.AddWithValue("@Name", str1);
            com.Parameters.AddWithValue("@Age", str2);
            com.Parameters.AddWithValue("@Gender", str3);
            com.Parameters.AddWithValue("@EmailId", str4);
com.Parameters.AddWithValue("@Id", str5);
com.CommandType = CommandType.StoredProcedure;
            con.Open();
            com.ExecuteNonQuery();
            con.Close();
     bindinfo();

Response.Write("<script>alert('data updated')</script>");
          }
        if (e.CommandName == "Cancel")
        {
            ((Label)e.Item.FindControl("lblname")).Visible = true;
            ((Label)e.Item.FindControl("lblage")).Visible = true;
            ((Label)e.Item.FindControl("lblgen")).Visible = true;
            ((Label)e.Item.FindControl("lblemail")).Visible = true;
            ((TextBox)e.Item.FindControl("txtname")).Visible = false;
            ((TextBox)e.Item.FindControl("txtage")).Visible = false;
            ((TextBox)e.Item.FindControl("txtgender")).Visible = false;
            ((TextBox)e.Item.FindControl("txtemail")).Visible = false;
            ((LinkButton)e.Item.FindControl("lnkEdit")).Visible = true;
            ((LinkButton)e.Item.FindControl("lnkdelete")).Visible = true;
            ((LinkButton)e.Item.FindControl("lnkupdate")).Visible = false;
            ((LinkButton)e.Item.FindControl("lnkcancel")).Visible = false;





        }

    }
    protected void Button1_Click(object sender, EventArgs e)
    {

      
      

        con.Open();
        com = new SqlCommand("information",con);
        com.Parameters.Add("@Name", SqlDbType.VarChar).Value = TextBox1.Text;
        com.Parameters.Add("@Age", SqlDbType.VarChar).Value = TextBox2.Text;
        com.Parameters.Add("@Gender", SqlDbType.VarChar).Value = TextBox3.Text;
        com.Parameters.Add("@EmailId",SqlDbType.VarChar).Value=TextBox4.Text;
        com.Parameters.Add("@return", SqlDbType.VarChar).Direction = ParameterDirection.ReturnValue;
        com.CommandType = CommandType.StoredProcedure;
        com.ExecuteNonQuery();
        con.Close();
        int count = Int32.Parse(com.Parameters["@return"].Value.ToString());

        if (count == 0)
        {
           // Response.Write("<script>alert('Data Already Present')</script>");

        }
        else
        {
            //Response.Write("<script>alert('Data inserted successfully')</script>");


        }
        bindinfo();
      

    }
    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (CheckBox1.Checked == true)
        {
            Label1.Enabled = true;
            Label2.Enabled = true;
            Label3.Enabled = true;
            Label4.Enabled = true;
            TextBox1.Enabled = true;
            TextBox2.Enabled = true;
            TextBox3.Enabled = true;
            TextBox4.Enabled = true;
            Button1.Enabled = true;
        }
        else
        {
            Label1.Enabled = false;
            Label2.Enabled = false;
            Label3.Enabled = false;
            Label4.Enabled = false;
            TextBox1.Enabled = false;
            TextBox2.Enabled = false;
            TextBox3.Enabled = false;
            TextBox4.Enabled = false;
            Button1.Enabled = false;
      

        }


    }
}
---------------------------------------------------------------------------------------------------------------
web config file write connection
<appSettings>
  <add key="details" value="Data Source=199.199.199.122;Uid=test_db;pwd=test_db123;database=Test_db" />
  <add key="FirstPage" value="Atul"/>
</appSettings>

sql server code :
--------------------------------------------------------------------------------------------------------------
for insert :
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[information]
 @Name varchar(100),
 @age varchar(100),
 @gender varchar(100),
 @emailid varchar(100),
@Image image
 --@message varchar(200) OUTPUT

 as


if exists(select Name from personal_information where emailid=@emailid and syncoperation <> 'D' )
begin
        -- select 'Data Already present' as msg
        return 0
end

else

begin
   declare @Id uniqueidentifier
    set @Id=NewID()
  

insert into personal_information(id,Name,age,gender,emailid,Per_Image,syncoperation,dateadded,addedby)
values(@Id,@Name,@age,@gender,@emailid,@Image,'A',getdate(),@Name)

   --SET @message = 'data inserted successfully'
   return 1
end
---------------------------------------------------------------------------------------------------------
For update :
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER procedure[dbo].[updatedata]
@Id varchar(100),
 @Name varchar(100),
 @age varchar(100),
 @gender varchar(100),
 @emailid varchar(100),
@Image image
 as
 begin
 update personal_information set [Name]=@Name,Age=@Age,Gender=@Gender,emailid=@emailid,Per_Image=@Image,modified_by=@Name,dateadded=getdate(),syncoperation='U' where Id=@Id
 end
-------------------------------------------------------------------------------------------------------------
For Delete:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER procedure [dbo].[deleteinfo]
@Id varchar(100),
@Name varchar(100)
as
begin
--delete from personal_information where Id=@Id
update personal_information set modified_by=@Name,dateadded=getdate(),syncoperation='D' where id=@id
end

i will give you all over code if any query or problem let me know......

Happy Coding ... :)