0

ライブサーバーに Crystal Report をデプロイしました。そのレポートは、私の場所のローカル マシンで正常に動作しています。

ライブサーバーにアップロードすると、サーバーログインの詳細を求められるため、以下のようにコードを記述します

        Dim I As Integer
        Dim LogonInfo As String()
        Dim Server As String = "", Database As String = "", User As String = "", Pwd As String = ""
        LogonInfo = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString.Split(";")
        For i = 0 To LogonInfo.Length - 1
            Dim strTemp As String() = LogonInfo(i).Split("=")
            Select Case strTemp(0).ToLower()
                Case "server"
                    Server = strTemp(1)
                    Exit Select
                Case "database"
                    Database = strTemp(1)
                    Exit Select
                Case "user id"
                    User = strTemp(1)
                    Exit Select
                Case "password"
                    Pwd = strTemp(1)
                    Exit Select
            End Select
        Next
        CRViewer.ReportSource = rptName

        Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
        myConnectionInfo.DatabaseName = Database
        myConnectionInfo.UserID = User
        myConnectionInfo.Password = Pwd
        myConnectionInfo.IntegratedSecurity = True
        Dim myTableLogOnInfos As TableLogOnInfos = CRViewer.LogOnInfo()
        For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
            myTableLogOnInfo.ConnectionInfo = myConnectionInfo
        Next

それでも資格情報を求めています。これに対する解決策は何ですか?

4

2 に答える 2

1

これはあなたを助けるかもしれません。

protected void Default()
{
    string _strConn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

    SqlConnectionStringBuilder _sqlcon = new SqlConnectionStringBuilder(_strConn);
    myLogOnInfo.ConnectionInfo.ServerName = _sqlcon.DataSource;
    myLogOnInfo.ConnectionInfo.DatabaseName = _sqlcon.InitialCatalog;
    myLogOnInfo.ConnectionInfo.UserID = _sqlcon.UserID;
    myLogOnInfo.ConnectionInfo.Password = _sqlcon.Password;
    rptClients.LogOnInfo = new TableLogOnInfos();
    rptClients.LogOnInfo.Add(myLogOnInfo);
}

これは私のために働きます。

于 2012-08-30T17:38:55.993 に答える
0

VB.Net で作成した CR の拡張メソッドがいくつかあります。私は通常、ビューアーを使用しませんが、ReportDocument にアクセスできる限り、これでうまくいきます。

それらを使用する拡張機能と例 (通常、これらとは ADO 接続を使用します):

http://www.blakepell.com/Main/BlogEntry.aspx?EntryID=e2fcdcf9-312e-4911-8572-20178c94660b

于 2012-08-31T23:04:53.673 に答える