查看: 712|回复: 6
|
该怎么从database里retrieve图案?asp.net in vb
[复制链接]
|
|
请问该怎么从database(access)里retrieve图案然后在datagrid里显示? |
|
|
|
|
|
|
|

楼主 |
发表于 2-5-2007 09:54 PM
|
显示全部楼层
我是这样子把它存进access file里的。
Sub AddRecord(ByVal Sender As Object, ByVal E As EventArgs)
Dim objConn As New oleDbConnection objConn.C
objConn.ConnectionString+= "Data Source= " & Server.MapPath("Customers.mdb")
Dim sqlCmd as String
Dim objCmd As New OleDbCommand(sqlCmd,objConn)
Dim sbMsg As New StringBuilder("Files Uploaded:")
sqlCmd = "INSERT INTO product (Categories, price,Description, [Image])
VALUES (@Categories, @price, @Description,@Image)"
objCmd = New OleDbCommand(sqlCmd, objConn)
objCmd.Parameters.Add("@Categories", Categories.SelectedItem.Text)
objCmd.Parameters.Add("@price", txtprice.Text)
objCmd.Parameters.Add("@Description", txtDescription.Text)
Dim bytearray() As Byte
Dim fs = System.IO.File.Open(File1.PostedFile.FileName,System.IO.FileMode.Open)
bytearray = New Byte(fs.Length - 1){}
fs.Read(bytearray, 0, fs.Length)
objCmd.Parameters.Add("@Image", OleDbType.Binary).Value=bytearray
objConn.Open()
objCmd.ExecuteNonQuery()
objConn.Close()
End Sub |
|
|
|
|
|
|
|
发表于 2-5-2007 11:52 PM
|
显示全部楼层
其实比较简单的方法是把图片的Relative Path存在Database... 而不是它的Byte... 这样的话... 只要读取图片的Path... 然后把它的path bind去Image Control就可以了... 这样比较省时省力... |
|
|
|
|
|
|
|

楼主 |
发表于 3-5-2007 03:45 PM
|
显示全部楼层
原帖由 小妞儿 于 2-5-2007 11:52 PM 发表
其实比较简单的方法是把图片的Relative Path存在Database... 而不是它的Byte... 这样的话... 只要读取图片的Path... 然后把它的path bind去Image Control就可以了... 这样比较省时省力...
请问有这方面的例子教学吗?我还在学习阶段。 |
|
|
|
|
|
|
|
发表于 3-5-2007 04:09 PM
|
显示全部楼层
原帖由 小妞儿 于 2-5-2007 11:52 PM 发表
其实比较简单的方法是把图片的Relative Path存在Database... 而不是它的Byte... 这样的话... 只要读取图片的Path... 然后把它的path bind去Image Control就可以了... 这样比较省时省力...
可是如果以后path修改的时候不是全部都要改咯??!
而且如果image分开存放(不在db内),那么backup不是又多一个步骤吗? |
|
|
|
|
|
|
|
发表于 4-5-2007 12:08 AM
|
显示全部楼层
原帖由 wcchyau 于 3-5-2007 03:45 PM 发表
请问有这方面的例子教学吗?我还在学习阶段。
- Sub btnUpload_click(ByVal s As Object, ByVal e As EventArgs)
-
- Dim extensionOK As Boolean = False
- Dim sizeOK As Boolean = False
- If upPhoto.HasFile Then // upPhoto is a FileUpload control
- Dim fileExtension As String = System.IO.Path.GetExtension(upPhoto.FileName).ToLower()
- Dim allowedExtensions As String() = {".jpg", ".jpeg", ".png", ".gif"}
- For i As Integer = 0 To allowedExtensions.Length - 1
- If fileExtension = allowedExtensions(i) Then
- extensionOK = True
- End If
- Next
-
- Dim fileSize As Integer = upPhoto.PostedFile.ContentLength
- If (fileSize < 2048000) Then
- sizeOK = True
- End If
-
- If extensionOK Then
- If sizeOK Then
- Try
- Dim oStream As System.IO.Stream = upPhoto.PostedFile.InputStream
- Dim ThumbnailPath As String = Server.MapPath("/UserPhoto/") + DateTime.Now.ToShortDateString.Replace("/", "_").ToString + "thumb" + intUID2.ToString + System.IO.Path.GetExtension(upPhoto.FileName).ToLower()
-
- Dim strThumbPath As String = "~/UserPhoto/" + DateTime.Now.ToShortDateString.Replace("/", "_").ToString + "thumb" + intUID2.ToString + System.IO.Path.GetExtension(upPhoto.FileName).ToLower()
-
- // Put ur Database code here to update the photo column
-
- Catch ex As Exception
- lblStatus.Text = "Some message."
- End Try
- Else
- lblStatus.Text = "Some message."
- End If
- Else
- lblStatus.Text = "Some message."
- End If
- Else
- lblStatus.Text = "Some message."
- End If
- End Sub
复制代码
大概是酱...
可是如果以后path修改的时候不是全部都要改咯??!
而且如果image分开存放(不在db内),那么backup不是又多一个步骤吗?
当然要改咯... hehe... 其实我只是建议一个比较容易实行的方法罢了啦... 这个方法有好有坏咯... 不过以我的经验... 很少可能改Path... 就算要改... 也不难... 写多一个Page来Batch Edit那些Path咯... hehe... 开玩笑的啦...
至于要Backup... backup 多一个Folder应该不会讲很难啦... 同时又可以减小DB的size... hehe... 适用于Access... |
|
|
|
|
|
|
|

楼主 |
发表于 4-5-2007 02:00 AM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|