Discussion:
SQLDataAdapter.Fill fails after call to SQLDataAdapter.FillSchema
(too old to reply)
zdrakec
2012-09-05 16:06:26 UTC
Permalink
Hullo:

I pass a new datatable to SQLDataAdapter.FillSchema, specifying that it use SchemaType.Mapped. The particular select command, hits a table that has only one integer field, the first, which is an identity column and the primary key.
Immediately after calling FillSchema, I call Fill, again passing the datatable.
The call to Fill is failing with this error message:
"Cannot convert object of type 'System.Data.SqlTypes.SqlInt32' to object of type 'System.Int64'."
So I checked, and indeed the datatable's first column is of type SqlInt32. Experimenting, I tried setting it, after the FillSchema call, to be SqlInt64, but got the same result.
What I am doing wrong?

Thanks much,
zdrakec
zdrakec
2012-09-05 16:11:02 UTC
Permalink
Post by zdrakec
I pass a new datatable to SQLDataAdapter.FillSchema, specifying that it use SchemaType.Mapped. The particular select command, hits a table that has only one integer field, the first, which is an identity column and the primary key.
Immediately after calling FillSchema, I call Fill, again passing the datatable.
"Cannot convert object of type 'System.Data.SqlTypes.SqlInt32' to object of type 'System.Int64'."
So I checked, and indeed the datatable's first column is of type SqlInt32. Experimenting, I tried setting it, after the FillSchema call, to be SqlInt64, but got the same result.
What I am doing wrong?
Thanks much,
zdrakec
Actually, I see that if I have the datatable's ReturnProviderSpecificTypes set to True, this is the culprit. Is there a workaround? I actually need to know the SQL types, I would like to avoid using multiple tables for this...
Loading...