下面的代码实现向SQL Server数据库添加图片和文字的功能。

首先,在SQL查询分析器中执行下面的语句,以创建表和存储过程。

Drop Table Person

 

Go

Create Table Person

(

PersonID Int Identity,

PersonEmail Varchar(255),

PersonName Varchar(255),

PersonSex Char(1),

PersonDOB DateTime,

PersonImage Image,

PersonImageType Varchar(255)

)

 

Drop Proc sp_person_isp

 

Go

Create Proc sp_person_isp

@PersonEmail Varchar(255),

@PersonName Varchar(255),

@PersonSex Char(1),

@PersonDOB DateTime,

@PersonImage Image,

@PersonImageType Varchar(255)

As

Begin

  Insert into Person

   (PersonEmail, PersonName, PersonSex,

   PersonDOB, PersonImage, PersonImageType)

   Values

   (@PersonEmail, @PersonName, @PersonSex,

   @PersonDOB, @PersonImage, @PersonImageType)

End

 

Go

 下面就是完整的代码,拷贝即可运行:

<%@ Import Namespace="System.IO" %>

<%@ Import Namespace="System.Data.SqlClient" %>

<%@ Import Namespace="System.Data" %>

<%@ Page Language="vb" %>

<HTML>

<HEAD>

<title>SQL Server插入图片</title>

<script runat="server">

Public Sub AddPerson(sender As Object, e As EventArgs)

  Dim intImageSize As Int64

  Dim strImageType As String

  Dim ImageStream As Stream

  ' 获得图片的大小

  intImageSize = PersonImage.PostedFile.ContentLength

  ' 获得图片类型

  strImageType = PersonImage.PostedFile.ContentType

  '读取图片

  ImageStream = PersonImage.PostedFile.InputStream

  Dim ImageContent(intImageSize) As Byte

  Dim intStatus As Integer

  intStatus = ImageStream.Read(ImageContent, 0, intImageSize)

  ' 创建ConnectionCommand对象

  Dim strCnn As String = "Data Source=.;Initial Catalog=mxh;User Id=sa;Password=;"

  Dim myConnection As New SqlConnection(strCnn)

  Dim myCommand As New SqlCommand("sp_person_isp", myConnection)

  ' 使用存储过程

  myCommand.CommandType = CommandType.StoredProcedure

  ' 向存储过程添加参数

  Dim prmEmail As New SqlParameter("@PersonEmail", SqlDbType.VarChar, 255)

  prmEmail.Value = txtPersonEmail.Text

  myCommand.Parameters.Add(prmEmail)

 

  Dim prmName As New SqlParameter("@PersonName", SqlDbType.VarChar, 255)

  prmName.Value = txtPersonName.Text

  myCommand.Parameters.Add(prmName)

  Dim prmSex As New SqlParameter("@PersonSex", SqlDbType.Char, 1)

 

  If sexMale.Checked Then

         prmSex.Value = "M"

  Else

         prmSex.Value = "F"

  End If

  myCommand.Parameters.Add(prmSex)

 

  Dim prmPersonDOB As New SqlParameter("@PersonDOB", SqlDbType.DateTime)

  prmPersonDOB.Value = txtPersonDob.Text

  myCommand.Parameters.Add(prmPersonDOB)

 

  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("添加成功!")

    Catch SQLexc As SqlException

    Response.Write("添加失败,原因:" & SQLexc.ToString())

  End Try

End Sub

</script>

</HEAD>

<body >

    <form enctype="multipart/form-data" runat="server" ID="Form1">

              </asp:TableCell>  </asp:TableRow>    </asp:TableCell>                    </asp:TableCell>        </asp:TableRow>                  </asp:TableCell>                  </asp:TableCell>        </asp:TableRow>                 </asp:TableCell>                 </asp:TableCell>        </asp:TableRow>            </asp:TableCell>                </asp:TableCell>        </asp:TableRow>                 </asp:TableCell>                      <input type="file" id="PersonImage" runat="server" NAME="PersonImage" /></asp:TableCell>        </asp:TableRow>                    </asp:TableCell>      </asp:TableRow>     </asp:Table>

 </form>

</body>

</HTML>

posted on 2006-01-17 17:31  xzcastle  阅读(272)  评论(0编辑  收藏  举报