Share via


Obtener acceso a bases de datos seguras

El procedimiento para obtener acceso a bases de datos seguras mediante Crystal Reports para Visual Studio .NET difiere entre Web Forms y Windows Forms. En Windows Form, un cuadro de diálogo le pide automáticamente al usuario que escriba su nombre de usuario y su contraseña. En Web Form, sin embargo, debe diseñar un formulario que recupere esta información del usuario. En ambos casos, puede utilizar código para especificar el nombre de usuario y la contraseña, otorgando así el mismo nivel de seguridad a todos los usuarios de la aplicación.

Establecer los parámetros de conexión a la base de datos

El siguiente ejemplo muestra el procedimiento para pasar los parámetros de conexión a las tablas de un informe. Para este ejemplo, se utiliza una conexión a una base de datos segura de SQL Server.

  1. Inicie un nuevo proyecto.
  2. Agregue un control Button y cuatro controles Textbox al formulario.
  3. Asigne los nombres serverNameTxt, dbNameTxt, userNameTxt y passwordTxt a los controles TextBox.
  4. Haga doble clic en el control Button para especificar el código del evento Click. En función del lenguaje que esté utilizando, inserte el adecuado.

[Visual Basic]

' Declarar las variables necesarias.
Dim logOnInfo As New TableLogOnInfo()
Dim i As Integer

' Realizar ciclos en todas las tablas del informe.
For i = 0 To report.Database.Tables.Count - 1
   ' Establecer la información de conexión de la tabla actual.
   logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Text
   logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Text
   logOnInfo.ConnectionInfo.UserID = userNameTxt.Text
   logOnInfo.ConnectionInfo.Password = passwordTxt.Text
   report.Database.Tables.Item(i).ApplyLogOnInfo(logOnInfo)
Next i

[C#]

// Declarar las variables necesarias.
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
int i = 0;

// Realizar ciclos en todas las tablas del informe.
for (i=0;i == Report.Database.Tables.Count - 1;i++)
{
   // Establecer la información de conexión de la tabla actual.
   logOnInfo.ConnectionInfo.ServerName = serverNameTxt.Text;
   logOnInfo.ConnectionInfo.DatabaseName = dbNameTxt.Text;
   logOnInfo.ConnectionInfo.UserID = userNameTxt.Text;
   logOnInfo.ConnectionInfo.Password = passwordTxt.Text;
   Report.Database.Tables [i].ApplyLogOnInfo (logOnInfo);
}

[C++]

// Declarar las variables necesarias.
TableLogOnInfo* logOnInfo = new TableLogOnInfo ();
int i = 0;

// Realizar ciclos en todas las tablas del informe.
for (i=0;i == Report->Database->Tables->Count - 1;i++)
{
// Establecer la información de conexión de la tabla actual.
logOnInfo->ConnectionInfo->ServerName = serverNameTxt->Text;
logOnInfo->ConnectionInfo->DatabaseName = dbNameTxt->Text;
logOnInfo->ConnectionInfo->UserID = userNameTxt->Text;
logOnInfo->ConnectionInfo->Password = passwordTxt->Text;
Report->Database->Tables->Item [i]->ApplyLogOnInfo (logOnInfo);
}

[VJ#]

// Declarar las variables necesarias.
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
int i = 0;

// Realizar ciclos en todas las tablas del informe.
for (i=0;i == Report.get_Database().get_Tables().get_Count() - 1;i++)
{
   // Establecer la información de conexión de la tabla actual.
   logOnInfo.get_ConnectionInfo().set_ServerName(serverNameTxt.get_Text());
   logOnInfo.get_ConnectionInfo().set_DatabaseName(dbNameTxt.get_Text());
   logOnInfo.get_ConnectionInfo().set_UserID(userNameTxt.get_Text());
   logOnInfo.get_ConnectionInfo().set_Password(passwordTxt.get_Text());
   Report.get_Database().get_Tables().get_Item(i).ApplyLogOnInfo (logOnInfo);
}

Nota   Para bases de datos de PC protegidas por contraseña, como Microsoft Access y Paradox, se utiliza el mismo método, salvo que se dejan en blanco LogOnInfo.ServerName y LogOnInfo.DatabaseName.

Vea también

Manipular datos