French lien EditText avec base SQlite

ssonap

Member
Licensed User
Bonjour,

je découvre aujourd'hui B4A :)
J'ai devellopé une application sur Excel et je souhaite la mettre en place par B4A.

Pour cela, j'essaye de comprendre le lien avec SQlite. Et j'aimerais avoir un début de code pour exemple (j'ai regardé les docs mais je ne trouve pas mon bonheur).
Imaginons une appli très simple avec un spinner, un Edittext (t1), un bouton (valider) et bien sur une base sqlite simple à 2 colonnes (appeler "test1.db").

Dans la base de donnée (10 lignes), il y a la première colonne qui comprend des données initiales (non modifiables)et la deuxième colonne qui comprend également des données mais qui peuvent être modifiées.


Voilà ce que je souhaite faire :
- lier le spinner à la colonne1
- lier la t1 à la colonne 2
-

le principe :
1. Lorsque je sélectionne une donnée dans le spinner, la donnée sur la même ligne dans la base en colonne 2 va dans t1 automatiquement
2. Et si je modifie l'editText (t1) et que je clique sur le bouton "valider"alors la donnée en colonne 2 se modifie sur la base de donnée sqlite et se sauvegarde.

Voilà, j'espère avoir été clair et si vous pouvez m'aider avec un bout de code dans ce sens, vous me rendrez un très grand service :).

merci de votre aide.

Cordialement
 

klaus

Expert
Licensed User
Bienvenue dans la communauté B4x.
As-tu regardé les exemples simples de SQLiteLight?
Ce sont des exemples très simples qui font ce que tu veux faire.
D'autre part tu peux aussi regarder dans le B4A User's Guide (en anglais), il y a un chapitre sur SQLite, lien dans ma signature.
Les codes sources de SQLiteLight sont compris dans le fichier du User's Guide
 

ssonap

Member
Licensed User
Bonsoir,

j'ai suivi le conseil et j'ai regardé le user's guide mais je coince toujours.
J'ai créé un bouton (btn1) qui active la récupération d'une donnée de la colonne "Risque" pour la mettre dans un edittext (et2) si la donnée de la colonne "Situation" est égale au données d'une Edittext (et1).

mais il ne se passe rien et je ne comprends pas :(

ci dessous mon code

B4X:
Sub btn1_Click
cursor1 = sql1.ExecQuery2("SELECT Risque FROM Menu WHERE Situation = ?", Array As String (et1.Text))
    For a=0 To cursor1.RowCount-1
        cursor1.Position = a
        et2.Text = cursor1.GetString("Risque")
    Next
End sub
cursor1 et sql1 sont bien défini puisque le code 'cursor1=sql1.ExecQuery("SELECT Risque FROM Menu") fonctionne lui très bien

par avance merci pour votre aide. J'ai vraiment besoin d'un petit éclaircissement :)

Bien cordialement
 

herjo

Member
Licensed User
bonsoir
j'imagine que la connection à la db a été réalisée et qu'elle est ouverte
si c'est le cas, vous devriez faire un essai du genre :
SQL= "SELECT Risque FROM Menu WHERE Situation ='valeurEnString'

'valeurEnString' correspondant à une valeur existante recherchée

ensuite, si "situation" est une clé primaire, je ferais plutôt :
if cursor1.RowCount = 1 then
cursor1.Position = 0
et2.Text = cursor1.GetString("Risque")
end if

car avec une boucle, si ce n'est pas une clé primaire bien sûr, et si la dernière valeur est vide,
ça sera toujours celle -là qui s'affichera, donnant l'impression qu'il ne se passe rien
idem s'il n'y a pas de valeurs retournées (je me demande s'il ne faut pas mettre des guillements simples autour du ?)
cas du rowcount=0

un debug sur la ligne du 'if' vous montrera en pas à pas (touche f8) si vous êtes bien rentré dans la condition du if

ca devrait éclaircir le pb ^^
 

klaus

Expert
Licensed User
Sans voir le code complet il est quasiment impossible de donner un conseil concret, du moins pour moi.
Le plus simple serait que tu postes ton projet.
De cette manière nous voyons exactement ce que tu as fait et comment et nous pourrions tester le projet dans les mêmes conditions que toi.
 
Top