Friday, February 24, 2012

Obtain sqlceresultset table schema with GetSchemaTable

I have a SqlCeResult pointing to a table :

Public conexion As Data.SqlServerCe.SqlCeConnection = New Data.SqlServerCe.SqlCeConnection("Data Source=iPAQ File Store\GestionAlmacenN.sdf")

Public ComandoCargaProductos As Data.SqlServerCe.SqlCeCommand = conexion.CreateCommand

Public ResultSetProductos As Data.SqlServerCe.SqlCeResultSet

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

conexion.Open()

'**********************************************************

'************Conexion con Tabla Productos******************

'ComandoCargaProductos.CommandText = "SELECT * from [Productos]"

ComandoCargaProductos.CommandType = Data.CommandType.TableDirect

ComandoCargaProductos.IndexName = "PK__Productos__0000000000000041"

ComandoCargaProductos.CommandText = "Productos"

ResultSetProductos = ComandoCargaProductos.ExecuteResultSet(Data.SqlServerCe.ResultSetOptions.Scrollable Or Data.SqlServerCe.ResultSetOptions.Updatable)

End Sub

And I want to obtain the schema of the table which my resultset is pointing

Dim tabla As Data.DataTable

tabla = Me.ResultSetProductos.GetSchemaTable

But the datatable that i obtain don′t seem to have the schema that i need, for example don′t have the primary keys i have define and also don′t have any constrains......

Does anybody know the problem?

Thanks for your help

To get contraints like primary key, you can use IsUnique and IsKey property which you get in SchemaTable. To get the contraints you can get by querying the INFORMATION_SCHEMA.TABLE_CONSTRAINTS. Get more help at http://msdn2.microsoft.com/en-us/library/ms181757.aspx

No comments:

Post a Comment