2017-10-16 17 views
-1

イメージをSQL Serverデータベースに挿入すると、イメージがNULLの場合、0x値がデータベースイメージ列に挿入されます。イメージをSQL Serverデータベースに保存する

私は0X進値で画像を取得すると、私はエラーを取得する:どちらの意志(byte[])dr[1]よう

Parameter is not valid

string strsql = "SELECT [ID],PIC_Name FROM [HRMS].[dbo].[Employee_PC] where Id = '" + mFieldValue1 + "'"; 
myconn = new OleDbConnection(clsConnections.conString); 
myconn.Open(); 

cmd = new OleDbCommand(strsql, myconn); 
OleDbDataReader dr = null; 

dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    if ((byte[])dr[1] == null) 
    //if (picData == null) 
    { 
     pictureBox1.Image = null; 
    } 
    else 
    { 
     MemoryStream ms = new MemoryStream((byte[])dr[1]); 
     ms.Position = 0; 
     pictureBox1.Image = new Bitmap(ms); 
    } 
} 
+0

チェック、データベースから返された値が0X(はDBNull)でない場合 –

+0

あなたは* *あなたのDBに画像を保存することができますが、私は強くあなたが唯一の実際のファイルへの参照を保存することを示唆しています。 – Robert

答えて

0

dr[1]は、nullではありません。その配列の最初のバイトにチェックします。

byte[] picData = (byte[])dr[1]; 

if (picData[0] == 0) 
{ 
    pictureBox1.Image = null; 
} 
else 
{ 
    MemoryStream ms = new MemoryStream(picData); 
    ms.Position = 0; 
    pictureBox1.Image = new Bitmap(ms); 
} 
関連する問題