Bonjour toute le monde,
Je développe une application avec VB.NET, base de donnée Access, je veux dans mon programme vb savoir un telle champs est obligatoire ?
Merci l’équipe.
Version imprimable
Bonjour toute le monde,
Je développe une application avec VB.NET, base de donnée Access, je veux dans mon programme vb savoir un telle champs est obligatoire ?
Merci l’équipe.
getschematable sur ton oledbdatareader (plus d'infos sur msdn)
merci Pol63 pour votre réponse,
mais il me retourne toujours la valeur true, je ne sais pas pourquoi?
voici le code utilisé:
il m'affiche toujours le mesageCode:
1
2
3
4
5
6
7
8
9
10 cmd = New OleDbCommand("select champs from table", conn) Try Dim schemaTable As DataTable dr = cmd.ExecuteReader(CommandBehavior.KeyInfo) schemaTable = dr.GetSchemaTable() For Each myField As DataRow In schemaTable.Rows MessageBox.Show(schemaTable.Columns(8).ColumnName + " = " + myField(schemaTable.Columns(8)).ToString()) Next
meme si je change le champs qui as la valeur de propriété null interdit = false.Code:AllowDBNull=true
cc depuis access ?
même si je mets "null interdit = true" ou bien null interdit = false, toujours le meme message.
google a l'air de dire que cette fonction serait buggée avec access via le provider oledb
Alors il n'a pas une autre méthode????????
merci.
je n'ai pas dit ca
regarde sur google pour savoir comment contourner le problème, certains sont passés par odbc par exemple
bonjour,
j'ai changé le provider, mais toujours le même problème;
merci.Code:
1
2
3
4
5
6
7
8
9 Dim strConnectodbc As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\SIG\BDD_INT.mdb;" Dim connodbc = New OdbcConnection(strConnectodbc) Dim comdodbc As OdbcCommand Dim datarodbc As OdbcDataReader Dim schemaTable As DataTable datarodbc = comdodbc.ExecuteReader(CommandBehavior.KeyInfo) schemaTable = datarodbc.GetSchemaTable() MessageBox.Show("allowdbnull = " + schemaTable.Rows(0)("AllowDBNull").ToString)
essaye de voir s'il y a des tables systèmes dans lesquelles tu pourrais lire les infos
sur sql server on peut faire select * from sys.tables ou sys.columns et récupérer les infos de structure
http://www.google.fr/#q=tables+syst%C3%A8me+access
merci Pol63, j'ai trouvé la réponse dans ce lien:
http://support.microsoft.com/kb/309488
Code:
1
2 schemaTable = myconnexion.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, _ New Object() {Nothing, Nothing, nom_table, Nothing})