Está en la página 1de 4
saisi2018 Crear una base de dalos de SOL Server mediante cédigo de Visual Basic b+ nueve Vaual pac ‘tan HOM / Semis Senet ma net apoaiet el Guille, la Web del Visual Basic, C#, .NET y mas... Tutoriales Aitorrio Microsoft Net ADO .NET Crear una base de datos de SQL Server mediante cédigo de Visual Basic Publicado el 03/Feb/2006 Actualizado el 03/Feb/2006 Autor: Guillermo ‘guille’ Som Introducci6én Lo que vamos a ver en este truco, ya que por extensién ne llega a ganarse el "tipo" de articulo, es cémo crear mediante cédigo de Visual Basic (cualquier versién para .NET) una base de datos de SQL Server. Esa base de datos se almacenaré en la carpeta predeterminada de SQL Server y el usuario también seré el predeterminado, es mas la conexidn la haremos usando autenticacién de Windows, por tanto, este cédigo solo te servird si esa base de datos la creas localmente, es decir, no servird para crear la base en un servidor remote, salvo que tengas acceso a ese servicor usando la autenticacién de Windows, pero no sera lo habitual ‘Ademas de que tampoco es la Intencién de este "truco", ya que en realidad la utilidad sera para usarlo desde aplicaciones “normales" de Windows o aplicaciones de éscritorio. Por supuesto, el usuario de Windows debe tener “permisos" para hacer esto, por tanto, sila aplicacién la vas @ usar en otro equipo en el que el usuario no tenga esos permisos, tendrés que cambiar la cadena de conexién, en la que tendrés que indicar el usuario y password que tenga privilegios suficientes. Para usar el siguiente cédigo, debes tener en las referencias el espacio de nombres System.Data y usaremos basicamente una conexién (SqlConnection) y un comando (SqlCommand). El cédigo es para Visual Basic, si quieres hacer esto mismo en C#, pulsa en el link anterior éPor qué separo el cédigo de VB del de C#? Para ver si vale la pena poner el cédigo en los dos lenguajes o seria mejor no "comerme el coco" y dejar solo el de Visual Basic, ya que mucha gente cree que en el sitio del Gullle solo hay cédigo de VB y asi, pues, se si tengo que "alargar" los articulos (o trucos) 0 no. Bueno, ivames @ lo que vamos! hitpsiwwelgullenfo/netADON (Grear_una_base_do_datos_de_SQl_Server_mediante_codigo_de_Visual_Basichtm ue saisi2018 Crear una base de dalos de SOL Server mediante cédigo de Visual Basic Para probar este cédigo, crea un nuevo proyecto de Windows, afiade tres etiquetas, a una de ellas le das el nombre de LableInfo y le asignas la propiedad Dack para que se sitde en la parte inferior del formulario, un comboBox (cboInstancias), una caja de textos (txtBase) y un botén (btnCrearBase). El aspecto del formulario es como el de la siguiente figura: Gree ed Insiande SOL: Nonbie delsbase: puebaule Figura 1. El formulario en tempo de disefio. Como puedes observar, © Imaginarte al ver la fgura 1, en el combo mostraremos las instancias de SQL Server que hay instaladas en el equipo, y por defecto estard Seleccionada la principal (lecal), pero puedes crear la base de datos en la instancia que quieras. Seguramente te dards cuenta de que el formulario (en modo de disefio) no es un formulario de Visual Studio 2003, sino de Visual Basic 2005, pero no te preocupes... iquleto paraa! ino te vayas! ya que el cédigo vale para todas las versiones de Visual Basic para .NET (2002, 2003, 2005 y haste para la 2007 cuando salga) Saber las instancias de SQL Server que hay instaladas (VB) Suponiendo que discurres un poco, je, je, cosa que no dudo, seguramente también deducirds que en este cédigo te voy a mostrar cémo saber las instancias que hay instaladas en el equipo. Pues si, tienes razén, y el cédigo usado es uno que lo averigua mirando en el registro de Windows. Ahora vers cémo se hace, de hecho, he puesto el cédigo en una funcién separada para que la puedas "copiar y pegar” fécilmente y no hace falta hacer ninguna exportacién de espacios de nombres, ya que he declarado las variables, etc. usando el nombre complet Asi que, empecemos viendo esa funcién que nos dice las instancias de SQL Server que hay instaladas en nuestro equipo. La clave InstalledInstances es una clave del tipo REG_MULTI_SZ, que internamente guarda los valores separdndolos con caracteres ChrW(0), pero que al leer el valor convertirlo usando un "cast" a array de tipo String, pues tenemos cada uno de los valores de forma separada, por eso, devalvemes un array de tipo String, y también por eso, hacemos un CType para convertir el valor devuelto por GetValue (que es de tipo Object) en el array que devolverd la funcién. La Instancia predeterminada de SQL Server tiene el nombre de MSSQLSERVER, pero en esta funcién no hacemos nada con ese "nombre", ya que sera en el cédigo que se encarga de asignarlo en el combo el que lo cambiaré por (local), que es la forma habitual de usar la instancia predeterminada, El resto de nombres de instancias, son precisamente eso los nombres de instancias, pero si las usamos asi "a pelo”, pues no nos funcionarg, ya que esas instancias siempre tendremos que usarlas "dentro" de la principal, or ejemplo, cuando instalamos el Visual Studio 2005 o el Visual Basic 2005 Express, se crea une instancia llamada SQLEXPRESS, pero para usar esa instancia, tendremos que hacerlo de dos formas, una usando (local) delante de esa instancia: (local) \SQLEXPRESS y Ia otra es usando el nombre del equipo, por ejemplo ELGUILLE\SQLEXPRESS. En Visual Studio .NET y el MSDE se crea una instancia llamada NETSDK, por tanto si tienes instalado el VS2005, ¥y el VS2003, te mostraré esto: hitpsiwwelgullenfo/netADON !Grear_una_base_de_datos_de_SQL_Server_mediante_codgo_de_Visual_Basichtm 28 saisi2018 (Crear una base de datos de SOL Server mediante cédigo de Visual Basic Sega ese coc on ome ah ela Insiangs os SO. Nonbie de bate Figura 2, Las Instanclas instaladas suelen depender de Ta versién de VS De ese "pequefio” detalle de “componer" correctamente el nombre de la instancia, (sin el que no podriamos crear la base de datos), se encarga el cédigo que "rellena’ el combo con las instancias, que es el siguiente: ‘Byval seider As system.object, Syval e As systen.ventargs) _ Handles MyBase.toad NSSQUSERVER" Then nf choInatancsas. Items Add ("(1eeal)\" 6 9) cbotnstanciaa Text = "(loca Como puedes comprobar, cuando la cadena es MSSQLSERVER la cambiemos por (local) y en el resto de los ‘casos, ponemos (local)\ celante del nombre de la instancia, ‘Anora veamos “por fin” el cédigo que se encarga de crear la base de datos. Crear una base de datos de SQL Server desde cédigo de VB ‘Como puedes apreciar en la figura 1, tenemos una caja de textos llamada txtBase que es en la que Indicaremos el nombre de la base de datos, Por tanto, en el cédigo del botén de crear la base usaremos tanto ese nombre de la base de datos que queremos usar como el nombre que haya en el combo, en el que puedes escribir lo que quieras, pero... solo deberias usar un nombre diferente a los mostrados si sabes con seguridad lo ‘que vas a hacer... de todas formas, si se produce un error, pues no pasa mucho (espero), ya que se intercepta en un Try/Catch. \Veamos el cécigo del botén "Crear base”. En este caso, debes tener una importacién a System.Data.SqiClient con idea de que podemos declarar los objetos que vamios a usar sin necesidad de anteponer ese espacio de nombres al nomare de cada une de las dos clases que vamos a usar, ‘cresriace_Click( _ Syval sender As Goject, Byval © As EventArgs) _ 0 + 4a conentén ae Fr Andicando 3 tection! ua orden 2 Din a ae seeing = Dim end As New SgiCommend(a, enn) én y ejecutanos €1 comando ced. ExecuteNongueey (0 Labelinto.text = "Base de datos Shor si se pi InfolnetIADONETICrear_una_base_do_datos_de_SQl_Server_mediante_codigo_de_Visual_Basichtm 318 ntptawelgull saisi2018 (Crear una base de datos de SQL Server mediante cédigo de Visual Basic ean.close() —_ . tsbelin Como puedes ver, el comando que ejecutamos es: CREATE DATABASE seguida del nombre de Ia base de datos a crear, y Ia conexién la hacemos en la base de datos "master" ya que es la que contiene las bases de esa Instancia, Coma "tip" extra, decirte que puedes usar el mismo nombre de base de datos en cada instancia de SQL Server, ye que cada instancia tiene su propio directorio para los datos. Y esto es todo, Espero que te sea de utilidad, que de eso es de lo que se trate. Nos vemos. Guillermo Elai |ntptwwwelgulle,infoinevADONETICrear_una_base_do_datos_de_SQl_Server_mediante_codigo_de_Visual_Basichtm 4a

También podría gustarte