boy77000
Messages postés12Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 5 mai 2006
-
24 avril 2006 à 18:12
boy77000
Messages postés12Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 5 mai 2006
-
3 mai 2006 à 09:37
Salut je gère une base de données via OleDb de ADO.NET !
Descriptif de l'application:
Les données 'Nom' et 'Prénom' de ma table 'Clientold' sont affichées dans des textbox ('Nom.text' et 'Prenom.text') et j'ai des boutons 'précédent' et 'suivant' pour passer d'un enregistrement à l'autre. Certains prénoms ne sont pas rempli dans la base de données ( des gens ont un nom mais pas de prénom en gros )
Problème:
Quand je veux lire ma base de données cela fonctionne si je demande que le nom mais pas quand je demande le prénom car le champ est NULL sûrement.
Je ne sais pas où mettre ma requête pour annuler les contraintes de champs NULL sachant que sur ma base de données la contrainte champ null est autorisé.
Si il faut une requête Sql voici ce que j'ai trouver dites moi si c'est bon si il faut bien ce code Sql SVP merci!
Solution 1:
ALTER TABLE Clientold CHANGE 'Prénom' 'Prenom' TEXT
Solution 2:
ALTER TABLE Clientold CHANGE 'Prénom' VARCHAR( 100 ) ;
La question:
Comment enlevé la contrainte de champ non null
Merci d'avnce de vos nombreux messages que j'attends avec impatience!
boy77000
Messages postés12Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 5 mai 2006 25 avril 2006 à 10:23
@ mcs2006 :
Ta dernière solution est bien, j'y avais pas pensais, mais je suis pas sur qu'il accepte que j'update sous prétexte que c'est un champ vide. Faut que je regarde mais le Update fonctionne pas à cause des champs vides! Donc il faut que je l'autorise avant toutes manipulations!
@ asecher :
Désolé de paraître ignare Mais rs: c'est RecordSet
Et que fait ta fonction:
prenom.text = "" & rs!Prenom
Quoi si tu peut m'expliquer vite fait et me dire dans quoi je dois le mettre! (update, form load, read, ... )
boy77000
Messages postés12Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 5 mai 2006 25 avril 2006 à 17:23
Attention les yeux je me lance, je postes le code de mon read.
<hr size= "2" width="100%"> ''''''''''Voir un enregistrement''''''''''
' 'Update' lock les table, le fait de faire un Close puis Open les délock
Me.ObjetConnection.Close()
Me.ObjetConnection.Open()
strSql = "SELECT Clientold.* FROM Clientold ORDER BY Nom" Pour info le ORDER BY fonctionne pas mais ceci est une autre histoire! lol
ObjetCommand = New OleDbCommand(strSql)
ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
ObjetCommand.Connection() = ObjetConnection
Me.ObjetDataAdapter.Fill(ObjetDataSet, "Clientold")
ObjetDataTable = ObjetDataSet.Tables("Clientold")
If RowNumber < 0 Then
ObjetConnection.Close()
Exit Sub
End If
'Lors de l'ouverture de la BD, s'il yn'y a aucun enregistrement
If RowNumber > ObjetDataTable.Rows.Count - 1 Then
ObjetConnection.Close()
Exit Sub
End If
'ObjetTable.Rows(Numéro de lignes).Item(Nom de colonne) donne le contenu d'un champ dans une case donnée
'Item peut avoir en paramètre le nom de la colonne ou son index
Me.Nom.Text = ObjetDataTable.Rows(RowNumber).Item("Nom").ToString
If Not isnull (ObjetDataSet, "Prénom") Then
Prenom.Text = ObjetDataTable.Rows(RowNumber).Item("Prénom").ToString
Else
Prenom.Text = ""
End If
'affichage des données dans le datagrid
DataGrid1.SetDataBinding(ObjetDataSet, "Clientold")
Me.ObjetConnection.Close()
<hr size="2" width="100%">En bleu la partie changée!
En vert ce qui n'est pas accepter!
Je rappel que je suis sous VB.NET et je n'ai pas fait de RecordSet mais un DataSet!
Voilà donc ce que mcs2006 ne va pas je sais pas pourquoi j'ai fais un Imports System.DBNull au début donc ca ne viens pas de là!
Ce n'est pas contre toi mcs2006 lol J'y peux rien si ca veux pas moi
@ asecher: Je te l'ai dit par MP mais je redis ici au cas ou quelqu'un d'autre puisse me répondre!
le :
ALTER TABLE Clientold
ALTER Prenom SET NULL
Cà se met où? (read, update, form load,..) et dans quoi? (dataset, dataadapter,...) car je suis pas en Sqlserver mais OleDb!
asecher
Messages postés262Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention27 avril 20071 25 avril 2006 à 17:51
Moi, je mettrais
Prenom.Text = "" & ObjetDataTable.Rows(RowNumber).Item("Prénom").ToString
à la place de
If Not isnull (ObjetDataSet, "Prénom") Then
Prenom.Text = ObjetDataTable.Rows(RowNumber).Item("Prénom").ToString
Else
Prenom.Text = ""
End If
D'autre part, pour le Alter Table (qui n'est à faire qu'une fois) :
Soit tu as ma main sur la base de données et tu enlève la contrainte Not Null sur le prénom, soit tu le met dans un strSQL avec un GO à la fin.
je n'utilise pas l'OLEDB donc je ne connais pas les syntaxes.
boy77000
Messages postés12Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 5 mai 2006 26 avril 2006 à 11:28
<hr size= "2" width="100%">If Not IsDBNull( ObjetDataSet!Prénom ) Then
Prenom.Text = "" & ObjetDataTable.Rows(RowNumber).Item("Prénom").ToString
Else
Prenom.Text = ""
End If<hr size="2" width="100%">C'est bien IsDBNull maintenant qu j'y repense! lol
Mais cette fois c'est çà qu'il veut pas!
Mais moi j'ai un DataSet aors est-ce que c'est pareil avec un DataSet et un RecordSet !?!?
Ensuite j'ai tester un changement car le '!' m'a parut bizarre je me suis dit que c'était peut être du VB6 çà aussi, car dans mon code j'écrivais pas de cette façon. lol:
ObjetDataSet!Prénom ===> ObjetDataSet, "Prénom"
Mais ca ne marche pas non plus ! lol
Pour les Imports je penses qu'il vaut mieu en appeler trop que pas assez alors j'ai appeler tout çà:
<hr size="2" width="100%">Imports System
Imports System.Data
Imports System.Data.DataSet
Imports System.Data.OleDb
Imports Microsoft.VisualBasic
Imports System.DBNull
Imports Microsoft.VisualBasic.Information
<hr size="2" width="100%">Si ca n'est pas bien d'en appeler pour une certaines raison merci de me dire!
En rouge celle que j'ai appelées pour notre partie du code!
Car System.VisualBasic.Information ne fonctionne pas sûrement en VB6
Merci de m'avoir aider et de continuer à me supporter encore un peu car je sais que je suis relou!
On peut croire que j'atends tout sans chercher mais je vous assure avoir chercher et c'est la première fois que j'utilise VB.NET, je dois faire une gestion de base de données pour mon stage de fin d'étude! Et je penses m'en être bien sortit jusque là car j'ai réussi un read update ..... Je dis çà pour montrer que je suis pas là pour demander à chaue fois sans chercher avant! Voilà ++