Condividi tramite


Accesso a database protetti

La procedura per accedere a database protetti tramite Crystal Reports per Visual Studio .NET, è diversa per i Web Forms e per i Windows Forms. In un Windows Forms, viene visualizzata una finestra di dialogo in cui l'utente viene invitato a immettere il nome utente e la password. In un Web Forms, tuttavia, è necessario progettare un modulo che consente il recupero di tali informazioni dall'utente. In entrambi le situazioni è possibile utilizzare del codice per specificare il nome utente e la password, offrendo quindi lo stesso livello di sicurezza a tutti gli utenti dell'applicazione.

Impostazione dei parametri di accesso al database

Nel seguente esempio viene illustrato come passare i parametri di accesso alle tabelle di un report. Nell'esempio, è stata utilizzata una connessione a un database SQL Server protetto.

  1. Iniziare un nuovo progetto.
  2. Aggiungere al modulo un controllo Button e quattro controlli Textbox.
  3. Assegnare un nome ai quattro controlli TextBox serverNameTxt, dbNameTxt, userNameTxt, e passwordTxt.
  4. Fare doppio clic sul controllo Button per specificare il codice dell'evento Click. A seconda del linguaggio utilizzato, inserire il codice appropriato.

[Visual Basic]

' Dichiara le variabili richieste.
Dim logOnInfo As New TableLogOnInfo()
Dim i As Integer

' Esegue un ciclo attraverso ciascuna tabella del report.
For i = 0 To report.Database.Tables.Count - 1
   ' Imposta le informazioni di connessione per la tabella corrente.
   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#]

// Dichiara le variabili richieste.
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
int i = 0;

// Esegue un ciclo attraverso ciascuna tabella del report.
for (i=0;i == Report.Database.Tables.Count - 1;i++)
{
   // Imposta le informazioni di connessione per la tabella corrente.
   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++]

// Dichiara le variabili richieste.
TableLogOnInfo* logOnInfo = new TableLogOnInfo ();
int i = 0;

// Esegue un ciclo attraverso ciascuna tabella del report.
for (i=0;i == Report->Database->Tables->Count - 1;i++)
{
// Imposta le informazioni di connessione per la tabella corrente.
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#]

// Dichiara le variabili richieste.
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
int i = 0;

// Esegue un ciclo attraverso ciascuna tabella del report.
for (i=0;i == Report.get_Database().get_Tables().get_Count() - 1;i++)
{
   // Imposta le informazioni di connessione per la tabella corrente.
   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   Per i database per PC protetti con password, quali Microsoft Access e Paradox, viene utilizzato lo stesso metodo, con l'eccezione che LogOnInfo.ServerName e LogOnInfo.DatabaseName sono lasciati vuoti.

Vedere anche

Modifica dei dati