NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 2013
-
25 juil. 2010 à 14:41
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 2013
-
26 juil. 2010 à 18:35
ICONIC FIGURE
Bonjour à tous!!
j'aimerais extraire des données d'une base de donnée à partir d'une requête sql de type 'select' et de mettre le résultat dans un fichier xml...
voici le code que j'ai utilisé:
Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Visualbasic.mdf;"
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'Connect to the data source.
Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)
Try
objConn.Open()
'Fill the dataset with records from the Customers table.
Dim strSQL As String
Dim objDataset As New DataSet
Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter
'The OLEDbDataAdapter acts as a bridge between the data source,
'in this case the Customers table, and the dataset.
strSQL = "Select Nom from Basic"
objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _
strSQL, objConn)
objAdapter.Fill(objDataset)
'Create the FileStream to write with.
Dim strFilename As String
strFilename = "D:\Nazomeka.xml"
Dim fs As New System.IO.FileStream(strFilename, _
System.IO.FileMode.Create)
'Create an XmlTextWriter for the FileStream.
Dim xtw As New System.Xml.XmlTextWriter(fs, _
System.Text.Encoding.Unicode)
'Add the processing instruction to the beginning of the XML
' file, leaving the one which indicates a style sheet commented.
xtw.WriteProcessingInstruction("xml", "version='1.0'")
'xtw.WriteProcessingInstruction( _
'"xml-stylesheet", "type='text/xsl' href='customers.xsl'")
'Write the XML from the dataset to the file.
objDataset.WriteXml(xtw)
xtw.Close()
MsgBox("Customer data has been exported to D:\Nazomeka.xml.")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Erreur")
End Try
End Sub
mais j'ai constamment le message qui dit:
"le moteur de base de donnée Microsoft Jet ne peut pas ouvrir le fichier "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Visualbasic.mdf" car il est peut-être ouvert en mode exclusif par un autre utilisateur ou vous devez avoir l'autorisation de visualiser les données"
je sais pas trop comment y remédier.
je travaille sous Windows7 et Visual Studio Team System 2008
Merci d'avance pour vos suggestions!!
foliv57
Messages postés420Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention15 juillet 20149 26 juil. 2010 à 06:49
Bonjour,
Je pense que votre problème vient du fait que vous tentez d'accéder à une base de données SQL Server par son fichier .mdf alors que le moteur SQL doit être démarré. (Voir service SQL Server)
Pour accéder à une base de données SQL Server il sera préférable de passer par son moteur à l'aide d'une chaine de connection du style
"Data Source=MAMACHINE\SQLEXPRESS;Initial Catalog=Visualbasic;User Id=myUsername;Password=myPassword;"
Deuxième remarque :
Pourquoi utiliser la collection d'objet OleDb alors que vous avez à votre disposition une collection d'objets spécifique SQL Server (SQLConnection, SQLCommand ....)
NSUADI
Messages postés540Date d'inscriptionmardi 4 août 2009StatutMembreDernière intervention 1 février 20132 26 juil. 2010 à 16:55
ICONIC FIGURE
Merci pour les remarques constructives mais j'ai de nouveau une exception disant:
"Le serveur est introuvable ou pas accessible.Vérifiez que le nom d'instance est correct et que sqlserver est configuré pour accepter des connexions distantes"
je suis un peu perdu surtout que le nom du serveur est bien renseigné...
scromania
Messages postés452Date d'inscriptiondimanche 20 août 2006StatutMembreDernière intervention11 janvier 20139 26 juil. 2010 à 17:44
Rien a voir avec le code mais:
La station avec laquel tu te connect au serveur et autorisé ex login:passe de ta session windows. si tu fais partis d'un domain activedirectory il faut absolument que ta session soit autorisé sinon tu ne pourras pas.