Bonjour,
Les logiciels utilisés sont :
- Windows 7 Professionnel SP1
- SQL Server 2008 R2
- Visual Studio 2010 Professional
Je voudrais afficher dans une DataGridView de mon appli VB les colonnes issues de la requête suivante :
SELECT LOG_ID, LOG_TS, LOG_DATETIME, LOG_APPLICATION FROM LOG_IMPORT_CSV
Les types sont :
1 2 3 4 5
|
[LOG_ID] [bigint] IDENTITY(1,1) NOT NULL,
[LOG_TS] [timestamp] NOT NULL,
[LOG_DATETIME] [datetime] NOT NULL,
[LOG_APPLICATION] [varchar](50) NULL |
Si je ne mets pas le champ LOG_TS, pas de souci. Mais si j'inclus ce champ de type timestamp dans ma requête, alors j'obtiens ce message abscons :
"The following exception occurred in the DataGridView:
System.ArgumentException: Parameter is not valid.
at System.Drawing.Image.FromStream(Stream stream, Boolean
useEmbeddedColorManagement, Boolean validateImageData)
at System.Drawing.ImageConverter.ConvertFrom(ITypeDescriptorContext
context, CultureInfo culture, Object value)
at System.Windows.Forms.Formatter.FormatObjectInternal(Object value,
Type targetType, TypeConverter sourceConverter, TypeConverter
targetConverter, String formatString, IFormatProvider formatInfo, Object
formattedNullValue)
at System.Windows.Forms.Formatter.FormatObject(Object value, Type
targetType, TypeConverter sourceConverter, TypeConverter targetConverter,
String formatString, IFormatProvider formatInfo, Object formattedNullValue,
Object dataSourceNullValue)
at System.Windows.Forms.DataGridViewCell.GetFormattedValue(Object value,
Int32 rowIndex, DataGridViewCellStyle& cellStyle, TypeConverter
valueTypeConverter, TypeConverter formattedValueTypeConverter,
DataGridViewDataErrorContexts context)"
J'ai essayé diverses conversion de type, que ce soit au niveau SQL (avec CAST ou CONVERT) ou au niveau VB (ToString, BitConverter, ...) sans aucun succès.
Pour info voici mon code VB.NET (du moins les parties concernées) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Private WithEvents bindingSource1 As New BindingSource()
Me.DataGridView1.DataSource = Me.bindingSource1
-- Création de ma connexion w_cnx
-- w_sql est ma requete SQL
Dim command1 As New OleDbCommand(w_sql, w_cnx)
Dim reader As OleDbDataReader
reader = command1.ExecuteReader()
Dim table As New DataTable()
table.Load(reader)
table.Locale = System.Globalization.CultureInfo.InvariantCulture
Me.bindingSource1.DataSource = table |
Mais je ne pense pas que le code VB soit en cause puisque tout fonctionne bien si j'enlève le champs LOG_TS de ma requête
Je pense qu'il s'agit plus d'un problème de traitement d'un champ binaire?
Merci de votre aide
Partager