0
votes

Comment ajouter entier et Varchar (20) et Stocker comme Varchar (20) dans MySQL

J'ai db nommé Spaparparts dans lequel toutes les valeurs sont stockées comme Varchar (20). Je prends l'entrée de l'utilisateur via JTextfield en tant que numéro puis convertir en entier. S1 (qui est itemCode) et S2 (qui est la quantité à ajouter à la quantité réelle) sont l'entrée maintenant, je souhaite ajouter cette entrée dans "Quantité" (qui est également varchar) comme: xxx < / p>


3 commentaires

Pourriez-vous clarifier? Vous souhaitez enregistrer ce numéro dans "Num_EnteredbyUser" ou vous souhaitez obtenir ce numéro de DB Select? Quel est l'exemple de code?


Je crois que OP essaie de prendre deux valeurs à partir d'un utilisateur: le numéro à ajouter à la quantité et à l'article.


L'utilisateur entrera dans un nombre est JTextfield, que je vais obtenir du constructeur de ce groupe. Le S1 est le code d'article entré par l'utilisateur et la S2 est la quantité entrée par l'utilisateur. Je veux ajouter cette quantité dans la base de données d'origine où ID est l'ID que l'utilisateur est entré


3 Réponses :


0
votes

Je ne le recommanderais pas. Comment sauriez-vous si un entier + Varchar (20) est supérieur à 20 caractères?


4 commentaires

Ça ne peut pas être. Voir valeur max d'entier


@Matt je sais que dans Java, il y a une valeur maximale pour entier, mais le nombre de DB est un varchar (20). Je recommanderais d'utiliser un BigInteger pour l'addition.


Je veux juste ajouter de petites valeurs, c'est une base de données qui contiendra la quantité de produits pouvant être en milliers à max.


L'utilisateur entrera un nombre dans JTextfield, que je vais obtenir du constructeur de ce groupe. Le S1 est le code d'article entré par l'utilisateur et la S2 est la quantité entrée par l'utilisateur. Je veux ajouter cette quantité dans la base de données d'origine où ID est l'ID que l'utilisateur est entré



0
votes

Comme @Connor a dit, il n'ya aucun moyen de s'assurer que le résultat est inférieur à 20 caractères. L'utilisation d'un champ BigInteger est bien meilleure, mais si le champ doit être un varchar (20), je recommanderais de sélectionner que Champ de la base de données, faire l'addition en Java, puis stockez le résultat dans la base de données.


0 commentaires

0
votes

Si je comprends le problème correctement, vous souhaitez mettre à jour l'enregistrement dans la DB en fonction de l'élément. Donc, vous venez de lancer la valeur existante au numéro, ajoutez votre valeur supplémentaire (avec + code>) et le jeter.

int num = 0;
try {
    num = Integer.parseInt(s2);
} catch (Exception e) {
    System.out.println('Nope, that was not a number');
    //Do something else?
}
String insertQuery = "UPDATE spareparts SET quantity = cast(cast(quantity as integer)+"+num+" as char(20)) where itemcode = "+s1+";";

try {
    connection = DriverManager.getConnection(...); //add your data
    preparedStatement = connection.prepareStatement(sql)
    preparedStatement.executeUpdate();
} catch (Exception e) {
    //Something broke
}


5 commentaires

Cette requête ne vise que la mise à jour de la valeur que je souhaite que cette requête ajoute la valeur déjà existante


Oh, donc s'il y a une valeur de 3, et la personne met 4, vous voulez mettre à jour à 7?


Je veux dire si la valeur de la quantité est 15 et que l'utilisateur entre 10, il devrait l'enregistrer en tant que quantité = 25


@Syedshehrozsohail - Voir mon inserquery


@Syedshehrozshail accepte ceci comme réponse correcte s'il vous plaît