0

画像をサーバーにアップロードし、そのパスをテーブル (varchar(MAX)) に保存します。

レポートを作成してそのテーブルのレコードを表示することはできましたが、画像をそのデータソース (保存されたパス) にバインドできませんでした。

私のパスは次のようになります。

~/ARTSQLDATA/PTDIR/15090248/IDFTO/15090248PPID.jpg

次のコードを使用してデータセットにデータを入力しています

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        RepVuerCtl.ProcessingMode = ProcessingMode.Local
        RepVuerCtl.LocalReport.ReportPath = Server.MapPath("~/Account/RepPtProf.rdlc")
        RepVuerCtl.LocalReport.EnableExternalImages = True
        Dim DsPtProf As DSPtProf = GetData()
        Dim datasource As New ReportDataSource("PatientProfile", DsPtProf.Tables(0))
        RepVuerCtl.LocalReport.DataSources.Clear()
        RepVuerCtl.LocalReport.DataSources.Add(datasource)
    End If
End Sub
Private Function GetData() As DSPtProf
    Dim ARTSQLCON As SqlConnection = New SqlConnection(-------())
    Dim SQLCmd As New SqlCommand()
    SQLCmd.Connection = ARTSQLCON
    Using DtaRdr As New SqlDataAdapter(SQLCmd)
        SQLCmd.CommandType = CommandType.StoredProcedure
        SQLCmd.CommandText = "RepTblRegPtProf"
        SQLCmd.Parameters.Add("@FileNum", SqlDbType.Int).Value = 15090248 
        Using DsPtProf As New DSPtProf()
            DtaRdr.Fill(DsPtProf, "RepTblRegPtProf")
            Return DsPtProf
        End Using
    End Using

End Function

助けてくださいありがとう!

4

1 に答える 1

0

あなたと共有したい解決策を見つけました。フィードバックをお待ちしております。

画像パスを URI 形式 (エンコード) で保存するようにアップローダー関数を変更しました (つまり..

Dim ImgURI As String = New Uri(Server.MapPath("URL String")).AbsoluteUri    

Webフォームに画像を表示するには、URIをURLにデコードします

Function ConvertURI(URI As String)
    Dim DecodeURI As String = HttpUtility.UrlDecode(URI) 'Decode URI string
    Dim SubURI = DecodeURI.Substring(DecodeURI.IndexOf("Your Folder"))
    Dim URL As String = "~/" & SubURI ' Restore the URL string format
    Return URL
End Function
' then in your code

Dim ImgURL as string = ConvertURI("Your URI")
Sampleimg.ImageUrl = ImgURL

RDLC レポートに画像を表示するには、画像コントロール ソースを外部に設定し、画像値をテーブルのフィールド値に割り当てるだけです。

于 2015-09-12T08:48:16.167 に答える