visual studio para net mysqldataadapter downloads dev data conector vb.net visual-studio-2010 mysqli

vb.net - studio - Crear tabla



mysql-< connector>- net (3)

Ciertamente se puede hacer.

Básicamente construyes una cadena con una declaración Create Table en ella y luego la ejecutas.

por ejemplo, someSql "Crear tabla" + EditBox1.Text + "(.....)"

PERO

La creación de sql a partir de la entrada del usuario lo abre a los ataques de inyección sql.

Los identificadores legales, ciertos caracteres no se pueden usar, algunos se deben escapar, el nombre ya puede estar en uso ...

Una vez que tenga la tabla, cómo va a usarla el código, para saber que hay una tabla llamada "MyTable" en la base de datos, por qué está allí ...

Normalmente, no tendrías que repartir permisos de tabla.

¿Qué pasa con las dependencias (relaciones, procesos almacenados, contraints, etc.)

Hay varias maneras de lidiar con esto, una es crear una tabla en otra aplicación, crear reglas y almacenar metainformación de alguna manera que el código pueda usar para usar la tabla.

Otra opción para aplicaciones más simples es darle a la tabla un nombre único en el archivo db y luego usar el nombre ingresado por el usuario como un alias para que Show ("MyTable") se asigne a Show ("UserTable1876").

Otra posibilidad es si la tabla tiene una estructura común definida y solo el usuario la copia de Fred es agregar otra columna a la tabla y luego simplemente agregar el ID de usuario de Fred cuando se usa cualquier función CRUD.

Entonces, sí, se puede hacer, ¿verdad? Depende ....

Mi amigo necesita ayuda pero no puedo ayudarlo. Me refiero aquí para preguntar tu opinión.

Él quiere crear una nueva tabla en la base de datos (la suya usando vb.net, mysql). Lo más complicado es que quiere nombrar la nueva tabla de la entrada codificada en un cuadro de texto.

¿Es eso posible? Para crear y nombrar una nueva tabla a partir de la entrada en el cuadro de texto.

Espero que puedas ayudarme. Perdón por mi gramática


@njm puede crear una variable de cadena con la consulta de " Create table <name>(field1,field2....) " En la consulta anterior se debe reemplazar con su cuadro de texto de entrada.

Y pase esta cadena a la variable de comando mysql que tiene su propia conexión ... Y simplemente ejecute esta consulta ...


Este código debería funcionar ...

Agregue un botón al formulario con fines de prueba y coloque el siguiente código en su evento de clic

Importa MySql.Data.MySqlClient

''coloque esto en la clase .............
Dim myConnectionString = My.Settings.MySQL_DBConnectionString
Dim con As New MySqlConnection (myConnectionString)

''Código en el botón ...........

Dim createSql As String Try con = New MySqlConnection(myConnectionString) con.Open() Dim tblname = "anyInputName" createSql = "CREATE TABLE " & tblname & " (id INT(6) NOT NULL AUTO_INCREMENT,otherField TEXT NOT NULL,PRIMARY KEY (id));" Dim cmd As New MySqlCommand(createSql, con) cmd.ExecuteNonQuery() cmd.Dispose() Catch ex As Exception MsgBox(ex.Message) Finally con.Close() End Try

Ahora ve a experimentar .......