2013-02-08 78 views
0

我有一个名为IMG的表,并且存在保存图片的列IDContent如何从SQL Server中获取图像

怎么可能从那里得到图片?

我google了这个问题,我得到的是vb.net,c#和php - mysql。

也许有人可以说什么是获取图片(样本,复制/粘贴代码,程序)的最佳和最简单的方法?

谢谢!

+0

你使用'linq','dataset','entityFramework'或纯粹的查询语句吗? – spajce

+0

我使用纯SQL查询 – vovkjn

回答

1

尝试这样的事情(从d_r_w的答案):

SqlDataAdapter dataAdapter = new SqlDataAdapter(
    new SqlCommand("SELECT pic FROM imageTest WHERE pic_id = 1", 
    yourConnectionReference)); 

DataSet dataSet = new DataSet(); 
dataAdapter.Fill(dataSet); 

if (dataSet.Tables[0].Rows.Count == 1) 
{ 
    Byte[] data = new Byte[0]; 
    data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]); 
    MemoryStream mem = new MemoryStream(data); 
    yourPictureBox.Image= Image.FromStream(mem); 
} 

采取alook在complete answer

更多选择这样做:

我发现this post关于PHP,但与MySQL(您需要更改连接到您的服务器):

<?php 
// image.php - by Hermawan Haryanto &lt;[email protected]&gt; 
// Example PHP Script, demonstrating Storing Image in Database 
// Detailed Information can be found at http://www.codewalkers.com 

// database connection 
$conn = mysql_connect("localhost", "user", "password") 
    OR DIE (mysql_error()); 
@mysql_select_db ("hermawan", $conn) OR DIE (mysql_error()); 
$sql = "SELECT * FROM image WHERE image_id=".$_GET["iid"]; 
$result = mysql_query ($sql, $conn); 
if (mysql_num_rows ($result)&gt;0) { 
    $row = @mysql_fetch_array ($result); 
    $image_type = $row["image_type"]; 
    $image = $row["image"]; 
    Header ("Content-type: $image_type"); 
    print $image; 
} 
?> 
+0

也许有些解释?这是什么语言?我应该用我的服务器IP,用户名和密码替换'yourConnectionReference'吗? – vovkjn

+0

对不起,我没有注意到,没有提到编程语言,这个例子是在C#中,你实际使用哪种语言? – CloudyMarble

+0

我更喜欢使用PHP – vovkjn

1

经过大量的阅读和工作找到了解决办法!

这是! Works 100%

 Dim conn, sql, a, filename 
     Dim dir 
     dir = "c:\images\" //saves files into this directory 
     Dim fileObj 
     Set fileObj = CreateObject("Scripting.FileSystemObject") 
     Set conn = CreateObject("ADODB.Connection") 
     Dim strStream 
     Set strStream = CreateObject("ADODB.Stream") 
     Dim rstRecordset 
     Set rstRecordset = CreateObject("ADODB.Recordset") 
     conn.Open "Provider=SQLOLEDB;Data Source=yourserver;Integrated Security = SSPI","username","password" 
     rstRecordset.Open "Select xxx, yyy, zzz from table (nolock) where xxx = '' order by xxx desc", conn ', adOpenKeyset, adLockOptimistic 
     Set fso = CreateObject("Scripting.FileSystemObject") 

     While Not rstRecordset.EOF 
    filename = rstRecordset.Fields(0) 
    er = 0 

Do 
    er = er+1 
Loop While (fso.FileExists(dir & filename & "_" & er & ".JPG")) 

    filename = dir & filename & "_" & er & ".JPG" 
    strStream.Type = 1 
    strStream.Open 
    strStream.Write rstRecordset.Fields(2).Value 
    strStream.SaveToFile filename 
    strStream.Close 
     rstRecordset.MoveNext 
    Wend 

这是它!

+0

这是vb脚本 – vovkjn

+1

你做了一个艰难的工作,这可以通过C#,+1来完成。 – CloudyMarble

+0

谢谢:)我不熟悉C#。在VB上找到一个非常酷的脚本。只是做了一些更正,它的工作:) – vovkjn