salut a tous j essaye depuis 3 jours desesperemment a transporter les donnes d une feuille excel dans une table deja excitante dans sql 2000.ma feuille excel a 5 champ et ma table sql en a 9 mais les champ de ma feuille excel ont les memes noms que ma table sql.je suis confronter a 2 poblemes:
1.j ai des colonnes avec des dates dans ma feuille excel que lors de l insersion sont considerer coe des valeurs doubles et j ai cette erreur "valeur de type double ne peuvent pas etre converti en date"
2.lorsque je ne tiens pas compte de ses valeurs de dates c est a dire ke lors mon select je ne selectionne ke les valeur integer elles sont bien et bien inserer dans ma table sql mais pas dans les colonnes respestives,
voila le code: merci de bien vouloir m aider je suia desesperee.
Private Sub B_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_OK.Click
Dim oldbconstr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= c:\Kopie von Test-DWH-DB-2.xls;Extended Properties=Excel 8.0;"
OleConnection = New OleDb.OleDbConnection(oldbconstr)
Dim str As String = String.Format("select * from [arbeitstunden$] ", "T_Excel")
olecommand = New OleDb.OleDbCommand(str, OleConnection)
OleConnection.Open()
Dim worksheets As DataTable = OleConnection.GetSchema("tables")
' create dbdatareader to data worksheet und die werte von Excel TABELLE ZU HABEN UND DANN ZU CONVERTIEREN
Dim objdatareader As DbDataReader = olecommand.ExecuteReader()
objadapter = New OleDb.OleDbDataAdapter(str, OleConnection)
Dim ds As New DataSet
objadapter.Fill(ds, "T_EXCEL")
'sql sever connection string
Dim srtConnection As SqlConnection
srtConnection = New SqlConnection("Data Source=pc147;Initial Catalog=DWH_1;Integrated Security=True")
srtConnection.Open()
'bulk copy to sql server
Dim bulkcopy As SqlBulkCopy = New SqlBulkCopy(srtConnection)
bulkcopy.DestinationTableName = "T_Abrechnung"
bulkcopy.WriteToServer(objdatareader)
OleConnection.Close()
srtConnection.Close()
End Sub
l erreur survient en effet au niveau de bulkcopy.WriteToServer(objdatareader)
c est la qu on me dit que les valeurs doubles ne peuvent pas etre considerer comme des datatime
Partager