none
No permitir Añadir un record que ya existe. RRS feed

  • Pregunta

  • Hola pido ayuda. no he dado con la solucion. tengo un GridView (GV)y le mantenimiento atraves de un DetailsView(DV). la aplicaciiion le da mantenimiento al as extenciones telefonica . el file Extenciones que esta en servidor de Sql tiene su key. pero el DV al anadir debe de validar el campo del nomdre de la extencion buscando si existe en el file de extenciones y si existe qu evite anadir el nuevo record. El file de Estenciones tiene un key incremental lo que no se puede repetir es Extname field cuando lo tiene otro record.

    adjunto imagen :

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Data.SqlClient;

    using System.Configuration;

    using System.Web;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    namespace Extenciones.WebForms

    {

     public partial class WebForm1 : System.Web.UI.Page

        {

     protected void Page_Load(object sender, EventArgs e)

            {

            }

     protected void Page_PreRender(object sender, EventArgs e)

            {

                if (GridView1.SelectedRow == null)

                { DetailsView1.Visible = false; }

                else

                { DetailsView1.Visible = true; }

            }

      protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)

            {

                GridView1.DataBind();

                GridView1.SelectRow(-1);

            }

      protected void DetailsView1_ItemDeleted(object sender, DetailsViewDeletedEventArgs e)

            {

                GridView1.DataBind();

                GridView1.SelectRow(-1);

            }

       protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)

            {

                GridView1.DataBind();

                GridView1.SelectRow(-1);

            }

            protected void DropDownList5_SelectedIndexChanged(object sender, EventArgs e)

            {

      SqlDataSource2.UpdateParameters["Exttipo"].DefaultValue =   ((DropDownList)DetailsView1.FindControl("DropDownList5")).SelectedValue;

            }

            protected void DetailsView1_PageIndexChanging(object sender, DetailsViewPageEventArgs e)

            {

                // Consulta para insertar datos Estenciones

                string Notamsg = "";

                string Sqlcnn = ConfigurationManager.ConnectionStrings["ExtencionesConnectionString"].ConnectionString;

                string Sqls = "SELECT * FROM [Extencionuser]";

                SqlConnection cnn = new SqlConnection(Sqlcnn);

                SqlCommand Scmd = new SqlCommand(Sqls, cnn);

                cnn.Open();

                SqlDataReader sdr = Scmd.ExecuteReader();

                // Scmd.Parameters.AddWithValue("@Extuser", Convert.ToInt32(ExisteExtencion));

                Scmd.Parameters.AddWithValue("@Extname", sdr[1].ToString());

                while (sdr.Read())

                {

                if ("Extname.ToString" == sdr[1].ToString())

                    {

                    Notamsg = "Ya existe la Extencion";

                    }

                }

            }

            protected void DetailsView1_PageIndexChanged(object sender, EventArgs e)

            {

                // Consulta para insertar datos Estenciones

                string Notamsg = "";

                string Sqlcnn = ConfigurationManager.ConnectionStrings["ExtencionesConnectionString"].ConnectionString;

                string Sqls = "SELECT Extuser,Extname FROM [Extencionuser]";

                SqlConnection cnn = new SqlConnection(Sqlcnn);

                SqlCommand Scmd = new SqlCommand(Sqls, cnn);

                cnn.Open();

                SqlDataReader sdr = Scmd.ExecuteReader();

                Scmd.Parameters.AddWithValue("@Extname", sdr[1].ToString());

                while (sdr.Read())

                {

                    if ("Extname.ToString" == sdr[1].ToString())

                    {

                        Notamsg = "Ya existe la Extencion";

                        Response.Write(Notamsg);

                    }

                }

            }

       protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)

            {

                // Consulta para insertar datos Estenciones

                string Notamsg = "";

                string Sqlcnn = ConfigurationManager.ConnectionStrings["ExtencionesConnectionString"].ConnectionString;

                string Sqls = "SELECT Extuser,Extname FROM [Extencionuser]";

                SqlConnection cnn = new SqlConnection(Sqlcnn);

                SqlCommand Scmd = new SqlCommand(Sqls, cnn);

                cnn.Open();

                SqlDataReader sdr = Scmd.ExecuteReader();

                while (sdr.Read())

                {

                    if ("Extname.ToString" == sdr[1].ToString())

                    {

                        Notamsg = "Ya existe la Extencion";

                        Response.Write(Notamsg);

                     

                    }

                }

            }

        }

    CREATE TABLE [dbo].[Extencionuser] (

        [Extuser]     INT            IDENTITY (1, 1) NOT NULL,

        [Extname]     NVARCHAR (100) NULL,

        [Extposicion] NVARCHAR (50)  NULL,

        [ExtDept]     INT            NULL,

        [Extoffice]   INT            NULL,

        [Exttipo]     NVARCHAR (20)  NULL,

        [Extasignada] NVARCHAR (100) NULL,

        CONSTRAINT [PK_Extencionuser] PRIMARY KEY CLUSTERED ([Extuser] ASC),

        CONSTRAINT [FK_Extencionuser_Extdeparment] FOREIGN KEY ([ExtDept]) REFERENCES [dbo].[Extdeparment] ([Deptid]),

        CONSTRAINT [FK_Extencionuser_Extoficina] FOREIGN KEY ([Extoffice]) REFERENCES [dbo].[Extoficina] ([Offid])

    );

    martes, 28 de agosto de 2018 15:03

Respuestas

  • hola

    porque usas un reader el cual iteras para saber si existe el registro? eso es incorrecto

    Tampoco entiendo porque comparas contra "Extname.ToString", eso esta raro

    Para saber si existe el registro deberias usar

    cnn.Open();
    
    string Sqls = "SELECT COUNT(*) FROM [Extencionuser] WHERE Extname = @name";
    
    SqlConnection cnn = new SqlConnection(Sqlcnn);
    SqlCommand Scmd = new SqlCommand(Sqls, cnn);
    Scmd.Parameters.AddWithValue("@name", "Extname.ToString");
    
    int cant = Scmd.ExecuteScalar();
    
    if(cant > 0)
    {
    	//existe
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 28 de agosto de 2018 16:50