C sharp - crear folio

 
Vista:

crear folio

Publicado por Julio (7 intervenciones) el 14/10/2018 20:15:17
tengo un formulario para insertar registros en una base de datos, pero quiero que se genere automaticamete un numero de folio por cada nuevo registro,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

crear folio

Publicado por miguelz (7 intervenciones) el 15/10/2018 04:25:26
pues una manera que generes un numero aleatorio
o un incremental por cada registro tomando en cuenta el ultimo registro generado
o tambien puedes usar un generador Guiid es algo grande pero siempre sera unico

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear folio

Publicado por julio (7 intervenciones) el 15/10/2018 18:19:00
esto es lo que intento hacer, pero en i=int.parse(sql) me marca un error al mandar llamar el metodo, me dice que la cadena de entrada no tiene el formato correcto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public string creafolio()
{
 
    int i;
    string sql="select  max(id_cliente)  from tbl_ejemplo";
    i = int.Parse(sql);
 
    if (i >= 1)
    {
        i++;
        return i.ToString();
    }
    else
    {
        return i.ToString();
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

crear folio

Publicado por Yamil Bracho (1164 intervenciones) el 15/10/2018 18:40:33
El string sql no contiene ningun numero que se pueda convertir. Quieres ejecutar ese sql contra tu BD ? Si es asi chequea IdbConnection, ExecuteScalar, etc, todo lo que tiene que ver con ADO.NET o quizas Entity Framework.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear folio

Publicado por Julio (7 intervenciones) el 16/10/2018 06:19:23
gracias pude hacer el metodo, me faltaba objetos de tipo sqlcommand, el sqldatareader para asignar y ejecutar la consulta y estaba convirtiendo mal a entero...dentro del if todo esta bien,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear folio

Publicado por miguelZ (7 intervenciones) el 16/10/2018 17:07:02
Buen dia

de hecho debes revisar el codigo de tu if, al final segun tu logica no importa que tengas un numero positivo o negativo
siempre devolveras un numero no importa si el folio generado es igual al anterior.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

crear folio

Publicado por Marco (1 intervención) el 17/10/2018 01:52:07
Buen día.

Para la generación de un folio te sugiero que consideres lo siguiente: seguramente estás trabajando en un ambiente multiusario, por lo que es posible y probable que dos de ellos ( o más ) generen un folio simultáneamente y se produzca una colisión de datos.

Para evitar esto, adicional a la generación del folio, haz la llamada a la base de datos después de la validación de datos de la pantalla de captura, esto es más sencillo que bloquear el folio para que un usuario lo utilice y cuando la base de datos confirme que se registró la entrada, entonces le proporcionas el folio al usuario, y este lo obtienes mediante una llamada a un Stored Procedure.

Te comparto un código que genera un folio para un ítem de un artículo y genera una ID de 6 caracteres e inmediatamente hace la inserción.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
USE [BASE DE DATOS]
GO
/****** Object:  StoredProcedure [dbo].[Proc_Agrega_Insumo]    Script Date: 16/10/2018 18:46:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Marco A. Granados B.>
-- Create date: <21/05/2017>
-- Description:	<Generación de un nuevo número de Insumo>
-- =============================================
 PROCEDURE [dbo].[Proc_Agrega_Insumo]
 
-- Parámetros
    @InsumoDescripción nvarchar(50),
    @InsumoUDM nvarchar(5),
    @InsumoCosto money,
    @InsumoFecha nvarchar(20),
    @InsumoEstatus bit,
    @InsumoNotas nvarchar(Max)
 
AS
BEGIN
	DECLARE @InsumoId AS nvarchar(6), @Max_Número AS int
	SELECT @Max_Número = ISNULL(MAX(CAST(RIGHT([Insumos].[InsumoId],4) AS nvarchar)),0) + 1 FROM [dbo].[Insumos]
	SET @InsumoId = (SELECT 'IN' + REPLICATE('0',4-LEN(@Max_Número))+CAST(@Max_Número AS nvarchar(6)))
 
 
	INSERT INTO [dbo].[Insumos]
	VALUES (@InsumoId, @InsumoDescripción, @InsumoUDM, @InsumoCosto,@InsumoFecha, @InsumoEstatus,@InsumoNotas,'')
 
END

Esperando te sirva, te envío un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear folio

Publicado por julio (7 intervenciones) el 18/11/2018 17:56:48
comparto como quedo el método crear folio,
gracias por sus respuestas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public string creafolio()
{
    cn.Open();
 
    int valorMax;
 
    string sql = "select  max(idCliente)  from tblClientes";
 
    comando = new SqlCommand(sql, cn);
 
    SqlDataReader folio = comando.ExecuteReader();
 
    folio.Read();
 
    if (folio.GetValue(0).ToString() == string.Empty)
    {
        cn.Close();
        valorMax = 1;
        return valorMax.ToString();
 
    }
    else
    {
 
        valorMax = int.Parse(folio.GetValue(0).ToString());
        cn.Close();
        valorMax++;
        return valorMax.ToString();
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear folio

Publicado por Julio (7 intervenciones) el 18/11/2018 18:03:00
gracias por su respuesta, lo tomare en cuenta,para un proyecto a futuro, por ahora solo estoy haciendo un ejemplo pequeño, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar