Visual C++ .NET - Sumar Valores en Acces desde Visual C

 
Vista:

Sumar Valores en Acces desde Visual C

Publicado por jose jesus (1 intervención) el 02/02/2017 14:59:31
engo un sistema con una base de datos en acces en donde se agrega a la tabla "stock" los campos:

codigo:
nombre:
stock:

necesito que: si agrego un valor ya existente en el campo "codigo" de la base de datos, al valor del campo stock de ese código, se le sume el otro valor que intento agregar.

ejemplo:

tengo

codigo: 003
nombre: alfajor
stock: 6

y agrego

codigo: 003
nombre: alfajor
stock: 2

necesito que en la tabla se actualice como:

codigo:003
nombre:alfajor
stock:8


agradecerÍa mucho si me ayudan a resolver este problema
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
Imágen de perfil de Alejandro

Actualizar o agregar registro en Access según código existente

Publicado por Alejandro (265 intervenciones) el 14/02/2024 21:19:36
José, para lograr lo que necesitas, debes realizar una verificación antes de insertar un nuevo registro en la tabla "stock". Si el código ya existe, en lugar de agregar un nuevo registro, debes actualizar el valor del campo "stock". Aquí tienes un ejemplo de cómo podrías hacer esto en C# usando OleDb para conectarte a una base de datos de Access:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Data.OleDb;
 
class Program
{
    static void Main()
    {
        string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Ruta\\TuBaseDeDatos.accdb;";
        int codigo = 3; // Reemplaza con el valor real
        string nombre = "alfajor"; // Reemplaza con el valor real
        int stock = 2; // Reemplaza con el valor real
 
        // Verificar si el código ya existe en la base de datos
        bool codigoExistente = VerificarCodigoExistente(connectionString, codigo);
 
        // Si el código ya existe, actualiza el stock
        if (codigoExistente)
        {
            ActualizarStock(connectionString, codigo, stock);
        }
        else
        {
            // Si el código no existe, agrega un nuevo registro
            AgregarNuevoRegistro(connectionString, codigo, nombre, stock);
        }
    }
 
    static bool VerificarCodigoExistente(string connectionString, int codigo)
    {
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();
 
            string query = "SELECT COUNT(*) FROM stock WHERE codigo = @codigo";
            using (OleDbCommand command = new OleDbCommand(query, connection))
            {
                command.Parameters.AddWithValue("@codigo", codigo);
 
                int count = (int)command.ExecuteScalar();
                return count > 0;
            }
        }
    }
 
    static void ActualizarStock(string connectionString, int codigo, int stock)
    {
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();
 
            string query = "UPDATE stock SET stock = stock + @stock WHERE codigo = @codigo";
            using (OleDbCommand command = new OleDbCommand(query, connection))
            {
                command.Parameters.AddWithValue("@codigo", codigo);
                command.Parameters.AddWithValue("@stock", stock);
 
                command.ExecuteNonQuery();
            }
        }
    }
 
    static void AgregarNuevoRegistro(string connectionString, int codigo, string nombre, int stock)
    {
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();
 
            string query = "INSERT INTO stock (codigo, nombre, stock) VALUES (@codigo, @nombre, @stock)";
            using (OleDbCommand command = new OleDbCommand(query, connection))
            {
                command.Parameters.AddWithValue("@codigo", codigo);
                command.Parameters.AddWithValue("@nombre", nombre);
                command.Parameters.AddWithValue("@stock", stock);
 
                command.ExecuteNonQuery();
            }
        }
    }
}

Asegúrate de reemplazar `"C:\\Ruta\\TuBaseDeDatos.accdb"` con la ruta real de tu base de datos Access. Este código realiza una verificación para ver si el código ya existe en la tabla "stock" y, en función de eso, actualiza el stock existente o agrega un nuevo registro.
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