C a r l o s A n t o n i o
2010-05-06 18:49:44 UTC
Saludos Comañeros.
Tengo varios documentos en Excel que estoy cargando a traves de ODBC a una
BBDD en SQL Server. Pero no todas la columnas estan escritas de la misma
forma. Por ejemplo, en el Doc1.xls la primera columna es [id cliente] y en
el doc2.xls es [id_cliente]. Esto me da problemas pues me devuelve el un
error de OutOfRange lo cual es obvio pues si programo para cargar la columna
[id cliente] no va a encontrarla si aparece como [id_cliente].
Bueno, para lidiar con esto, resolvi obtener el "schema" de las tablas en
excel y renombrar las columnas (todo esto con ADO.NET) antes de cargarlas a
SQL Server, pero no encuentro la sitaxis correcta para renombrar las
columnas.
Si alguien pudiera ayudarme se lo agradecere. Adjunto el codigo:
Un saludo, Carlos Antonio
If InStr(schema_col.ColumnName, " ", CompareMethod.Text) >= 1 Then
'fix column name
Dim xlcmd As New OdbcCommand
With xlcmd
.Connection = c
.CommandType = CommandType.Text
'aqui es donde tengo el error de sitaxis
.CommandText = "alter table [" & sheet_name & "] alter column [" &
schema_col.ColumnName & "] " & schema_col.ColumnName.Trim.Replace(" ", "_")
.ExecuteNonQuery()
End With
End If
Tengo varios documentos en Excel que estoy cargando a traves de ODBC a una
BBDD en SQL Server. Pero no todas la columnas estan escritas de la misma
forma. Por ejemplo, en el Doc1.xls la primera columna es [id cliente] y en
el doc2.xls es [id_cliente]. Esto me da problemas pues me devuelve el un
error de OutOfRange lo cual es obvio pues si programo para cargar la columna
[id cliente] no va a encontrarla si aparece como [id_cliente].
Bueno, para lidiar con esto, resolvi obtener el "schema" de las tablas en
excel y renombrar las columnas (todo esto con ADO.NET) antes de cargarlas a
SQL Server, pero no encuentro la sitaxis correcta para renombrar las
columnas.
Si alguien pudiera ayudarme se lo agradecere. Adjunto el codigo:
Un saludo, Carlos Antonio
If InStr(schema_col.ColumnName, " ", CompareMethod.Text) >= 1 Then
'fix column name
Dim xlcmd As New OdbcCommand
With xlcmd
.Connection = c
.CommandType = CommandType.Text
'aqui es donde tengo el error de sitaxis
.CommandText = "alter table [" & sheet_name & "] alter column [" &
schema_col.ColumnName & "] " & schema_col.ColumnName.Trim.Replace(" ", "_")
.ExecuteNonQuery()
End With
End If