Foros del Web » Programando para Internet » ASPX (.net) »

Como enviar un Create table a la BD por el Command?

Estas en el tema de Como enviar un Create table a la BD por el Command? en el foro de ASPX (.net) en Foros del Web. Buenas tardes, Tengo una duda, en una pagina aspx mandandole una sentencia para crear una tabla temporal a la base de datos por medio de ...
  #1 (permalink)  
Antiguo 14/11/2008, 11:32
 
Fecha de Ingreso: agosto-2008
Ubicación: Medellín
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 0
Como enviar un Create table a la BD por el Command?

Buenas tardes,

Tengo una duda, en una pagina aspx mandandole una sentencia para crear una tabla temporal a la base de datos por medio de un command, el codigo es el que muestro a continuacion:
Código:
// creo la conexion a la bd
 SqlConnection cn = new SqlConnection("DataBase=BD; Server=Server; uid=sa; pwd=pwd");
// creo el command
        SqlCommand command = new SqlCommand("Create table #temporal (CodigoAcceso nchar(10))", cn);
        cn.Open();
        command.ExecuteReader();
pero en la base de datos no aparece la tabla temporal creada, hago un select * from #temporal y no existe.

Alguien me podria asesorar como soluciono eso?

muchas gracias
  #2 (permalink)  
Antiguo 14/11/2008, 13:02
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Como enviar un Create table a la BD por el Command?

En donde haces el select?

Para empezar el select, lo tienes que hacer sobre la misma conexión, y no estoy 100% seguro de que funcione.

Quizá otra manera de hacerlo es creandola con ##temporal (sí dos signos #) eso hace que otras sesiones o conexiones a la base de datos la puedan ver, pero obviamente si ya tienes una creada te dará problemas.

Pero porque no mejor nos comentas que quieres hacer, nunca había tenido esa ncesidad de crear una tabla temporal desde la aplicación y me curiosidad.

Saludos!

P.d. además intrucciones de ese tipo se hacen con ExecuteNonQuery.

Última edición por daniel00; 14/11/2008 a las 13:03 Razón: Agregar info.
  #3 (permalink)  
Antiguo 14/11/2008, 13:56
 
Fecha de Ingreso: agosto-2008
Ubicación: Medellín
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Como enviar un Create table a la BD por el Command?

Hola Daniel gracias por tu interes (si ahi tenia un error seria ExecuteNonQuery como tu lo decias gracias), lo que necesito hacer cuando en un aspx le dan un boton se ejecuten estas lineas de comandos en la bd:

Código:
Create table #temporal (CodigoAcceso nchar(10))

BULK INSERT #temporal FROM 'C:\AndresF\Codigos.dat' --Esta ruta cambia se mandara como parametro

INSERT into IngresoLector (IDEjemplar)
Select IDEjemplar 
from Ejemplares E, #temporal tem
where  E.CodigoAcceso = tem.CodigoAcceso COLLATE Modern_Spanish_CI_AS 
GO

SET ANSI_NULLS Off
update IngresoLector SET  FechaConsulta = getdate() WHERE FechaConsulta = NULL; 
go
la idea es que el aspx suba al servidor un archivo .DAT con una lista de codigos de acceso y ejecutar esas instrucciones.

gracias cualquier ayuda para solucionar esto.
  #4 (permalink)  
Antiguo 07/12/2008, 22:58
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 4 meses
Puntos: 31
Información Respuesta: Como enviar un Create table a la BD por el Command?

Prueba con esto, haber si te da alguna idea.

En Teoría esto te debería de ir, mete esta sentencia dentro de la connection string:

"create table tabla1 (clave smallint IDENTITY(1,1) PRIMARY KEY, nombre varchar(30), edad int, estatura float)";

Ami me funciona con SQL Server 2005 y VS2005/2008 si no te funcionara, prueba con el codigo que te pego despues.




private void CreateDatabase(DatabaseParam DBParam)
{
System.Data.SqlClient.SqlConnection tmpConn;
string sqlCreateDBQuery;
tmpConn = new SqlConnection();
tmpConn.ConnectionString = "SERVER = " + DBParam.ServerName +
"; DATABASE = master; User ID = sa; Pwd = sa";
sqlCreateDBQuery = " CREATE DATABASE "
+ DBParam.DatabaseName
+ " ON PRIMARY "
+ " (NAME = " + DBParam.DataFileName +", "
+ " FILENAME = '" + DBParam.DataPathName +"', "
+ " SIZE = 2MB,"
+ " FILEGROWTH =" + DBParam.DataFileGrowth +") "
+ " LOG ON (NAME =" + DBParam.LogFileName +", "
+ " FILENAME = '" + DBParam.LogPathName + "', "
+ " SIZE = 1MB, "
+ " FILEGROWTH =" + DBParam.LogFileGrowth +") ";
SqlCommand myCommand = new SqlCommand(sqlCreateDBQuery, tmpConn);
try
{
tmpConn.Open();
MessageBox.Show(sqlCreateDBQuery);
myCommand.ExecuteNonQuery();
MessageBox.Show("La base ha sido creada con exito",
"Create Database", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString(), "Create Database",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
finally
{
tmpConn.Close();
}
return;
}

Última edición por triqui; 07/12/2008 a las 23:10
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:31.