2007年3月20日 星期二

[.Net2.0]上傳檔案後存於資料庫

1.在MS_SQL內建立Table及SP
drop table test
go
create table test ( autono int IDENTITY(1,1) NOT NULL,
PersonImageType varchar(255) ,
PersonImage image)
go
drop proc sp_person_isp
go
Create proc sp_person_isp @PersonImageType varchar(255) , @PersonImage Image
As
Insert Into test(PersonImageType , PersonImage)
values(@PersonImageType , @PersonImage)
GO

2.在網頁內放置



3.引入參考Imports System.IOImports System.Data.SqlClient

4.在Click事件內寫入
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim intImageSize As Int64
Dim strImageType As String
Dim ImageStream As Stream
' Gets the Size of the Image
intImageSize = UpPhoto.PostedFile.ContentLength
' Gets the Image Type
strImageType = UpPhoto.PostedFile.ContentType
' Reads the Image
ImageStream = UpPhoto.PostedFile.InputStream
Dim ImageContent(intImageSize) As Byte
Dim intStatus As Integer
intStatus = ImageStream.Read(ImageContent, 0, intImageSize)

' Create Instance of Connection and Command Object
Dim myConnection As New SqlConnection("server=伺服器名稱;database=資料庫名稱;uid=登入帳號;pwd=密碼;")
Dim myCommand As New SqlCommand("sp_person_isp", myConnection)

' Mark the Command as a SPROC
myCommand.CommandType = CommandType.StoredProcedure

' Add Parameters to SPROC
Dim prmPersonImage As New SqlParameter("@PersonImage", SqlDbType.Image)
prmPersonImage.Value = ImageContent
myCommand.Parameters.Add(prmPersonImage)
Dim prmPersonImageType As New SqlParameter("@PersonImageType", SqlDbType.VarChar, 255)
prmPersonImageType.Value = strImageType
myCommand.Parameters.Add(prmPersonImageType)

Try
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
Response.Write("New person successfully added!")
Catch SQLexc As SqlException
Response.Write("Insert Failed. Error Details are: " = SQLexc.ToString())
End Try
End Sub

沒有留言: