我有一个名为IMG
的表,并且存在保存图片的列ID
和Content
。如何从SQL Server中获取图像
怎么可能从那里得到图片?
我google了这个问题,我得到的是vb.net,c#和php - mysql。
也许有人可以说什么是获取图片(样本,复制/粘贴代码,程序)的最佳和最简单的方法?
谢谢!
我有一个名为IMG
的表,并且存在保存图片的列ID
和Content
。如何从SQL Server中获取图像
怎么可能从那里得到图片?
我google了这个问题,我得到的是vb.net,c#和php - mysql。
也许有人可以说什么是获取图片(样本,复制/粘贴代码,程序)的最佳和最简单的方法?
谢谢!
尝试这样的事情(从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 <[email protected]>
// 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)>0) {
$row = @mysql_fetch_array ($result);
$image_type = $row["image_type"];
$image = $row["image"];
Header ("Content-type: $image_type");
print $image;
}
?>
也许有些解释?这是什么语言?我应该用我的服务器IP,用户名和密码替换'yourConnectionReference'吗? – vovkjn
对不起,我没有注意到,没有提到编程语言,这个例子是在C#中,你实际使用哪种语言? – CloudyMarble
我更喜欢使用PHP – vovkjn
经过大量的阅读和工作找到了解决办法!
这是! 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
这是它!
这是vb脚本 – vovkjn
你做了一个艰难的工作,这可以通过C#,+1来完成。 – CloudyMarble
谢谢:)我不熟悉C#。在VB上找到一个非常酷的脚本。只是做了一些更正,它的工作:) – vovkjn
你使用'linq','dataset','entityFramework'或纯粹的查询语句吗? – spajce
我使用纯SQL查询 – vovkjn