2017-08-22 16 views
-2

IDを使用してイメージを持つユーザを表示しようとしています。イメージをSQLサーバからVB.NET形式に戻すことはできません。

タイプ 'Byte()'からタイプ 'Byte'への変換は無効です。

イメージコードを削除すると、他のデータを表示しています。

If rdbtninvestigator.Checked = True Then 
      Dim mycmd1 As New SqlCommand("Select * From investigator where [email protected] ", connection) 
      mycmd1.Parameters.Add("@id", SqlDbType.VarChar).Value = txtid1.Text 

      Dim table As New DataTable 
      Dim adapter As New SqlDataAdapter(mycmd1) 
      adapter.Fill(table) 
      If table.Rows.Count > 0 Then 


       lblid.Text = table.Rows(0)(0).ToString() 
       lblname.Text = table.Rows(0)(1).ToString() 
       lblusername.Text = table.Rows(0)(2).ToString() 
       txtpassword.Text = table.Rows(0)(3).ToString() 
       Dim img As Byte 
       img = table.Rows(0)(4) 
       Dim ms As New MemoryStream(img) 
       picuser.Image = Image.FromStream(ms) 

       btnupdate.Enabled = True 
       btndelete.Enabled = True 


      Else 
       MsgBox("Account does not exist") 
       btnupdate.Enabled = False 
       btndelete.Enabled = False 



      End If 
+0

'Dim img As Byte'あなたが書いたとおり、このオブジェクトは配列ではなく、単一のbyte_を表します。私はあなたが 'Dim img As Byte()'のようなものを望んでいると思う(正しいVB構文でなければ申し訳ありませんが、基本的には単一項目ではない配列として宣言する必要があります) – ADyson

答えて

1

データベースに格納されたイメージは、バイト配列として格納されます。バイト配列ではなく、バイト変数にイメージを格納しようとしているというエラーメッセージが表示されます。

あなたが/正しい追加する必要があるコードの行は次のとおりです。

Dim image As Byte() 

ラインはタイプByte()の変数、バイト配列を作成すること。

関連する問題