下面的代码实现向SQLServer数据库添加图片和文字的功能。
首先,在SQL查询分析器中执行下面的语句,以创建表和存储过程。
DropTablePerson
Go
CreateTablePerson
(
PersonIDIntIdentity,
PersonEmailVarchar(255),
PersonNameVarchar(255),
PersonSexChar(1),
PersonDOBDateTime,
PersonImageImage,
PersonImageTypeVarchar(255)
)
DropProcsp_person_isp
Go
CreateProcsp_person_isp
@PersonEmailVarchar(255),
@PersonNameVarchar(255),
@PersonSexChar(1),
@PersonDOBDateTime,
@PersonImageImage,
@PersonImageTypeVarchar(255)
As
Begin
InsertintoPerson
(PersonEmail,PersonName,PersonSex,
PersonDOB,PersonImage,PersonImageType)
Values
(@PersonEmail,@PersonName,@PersonSex,
@PersonDOB,@PersonImage,@PersonImageType)
End
Go
下面就是完整的代码,拷贝即可运行:
<%@ImportNamespace="System.IO"%>
<%@ImportNamespace="System.Data.SqlClient"%>
<%@ImportNamespace="System.Data"%>
<%@PageLanguage="vb"%>
<HTML>
<HEAD>
<title>向SQLServer插入图片</title>
<scriptrunat="server">
PublicSubAddPerson(senderAsObject,eAsEventArgs)
DimintImageSizeAsInt64
DimstrImageTypeAsString
DimImageStreamAsStream
'获得图片的大小
intImageSize=PersonImage.PostedFile.ContentLength
'获得图片类型
strImageType=PersonImage.PostedFile.ContentType
'读取图片
ImageStream=PersonImage.PostedFile.InputStream
DimImageContent(intImageSize)AsByte
DimintStatusAsInteger
intStatus=ImageStream.Read(ImageContent,0,intImageSize)
'创建Connection和Command对象
DimstrCnnAsString="DataSource=.;InitialCatalog=mxh;UserId=sa;Password=;"
DimmyConnectionAsNewSqlConnection(strCnn)
DimmyCommandAsNewSqlCommand("sp_person_isp",myConnection)
'使用存储过程
myCommand.CommandType=CommandType.StoredProcedure
'向存储过程添加参数
DimprmEmailAsNewSqlParameter("@PersonEmail",SqlDbType.VarChar,
255)
prmEmail.Value=txtPersonEmail.Text
myCommand.Parameters.Add(prmEmail)
DimprmNameAsNewSqlParameter("@PersonName",SqlDbType.VarChar,
255)
prmName.Value=txtPersonName.Text
myCommand.Parameters.Add(prmName)
DimprmSexAsNewSqlParameter("@PersonSex",SqlDbType.Char,1)
IfsexMale.CheckedThen
prmSex.Value="M"
Else
prmSex.Value="F"
EndIf
myCommand.Parameters.Add(prmSex)
DimprmPersonDOBAsNewSqlParameter("@PersonDOB",SqlDbType.DateTime)
prmPersonDOB.Value=txtPersonDob.Text
myCommand.Parameters.Add(prmPersonDOB)
DimprmPersonImageAsNewSqlParameter("@PersonImage",SqlDbType.Image)
prmPersonImage.Value=ImageContent
myCommand.Parameters.Add(prmPersonImage)
DimprmPersonImageTypeAsNewSqlParameter("@PersonImageType",
SqlDbType.VarChar,255)
prmPersonImageType.Value=strImageType
myCommand.Parameters.Add(prmPersonImageType)
Try
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
Response.Write("添加成功!")
CatchSQLexcAsSqlException
Response.Write("添加失败,原因:"&SQLexc.ToString())
EndTry
EndSub
</script>
</HEAD>
<bodystyle="FONT:9pt宋体">
<formenctype="multipart/form-data"runat="server"ID="Form1">
<asp:TableRunat="server"Width="50%"BorderWidth="1"BackColor="Beige"ID="Table1"
Font-Name="宋体"Font-Size="9pt">
<asp:TableRow>
<asp:TableCellColumnSpan="2"BackColor="#ff0000">
<asp:LabelForeColor="#ffffff"font-bold="True"Runat="server"Text="添加新用户"ID="Label1"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCellHorizontalAlign="Right">
<asp:LabelRunat="server"Text="姓名"ID="Label2"/>
</asp:TableCell>
<asp:TableCell>
<asp:TextBoxid="txtPersonName"Runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCellHorizontalAlign="Right">
<asp:LabelRunat="server"Text="电子邮件"ID="Label3"/>
</asp:TableCell>
<asp:TableCell>
<asp:TextBoxid="txtPersonEmail"Runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCellHorizontalAlign="Right">
<asp:LabelRunat="server"Text="性别"ID="Label4"/>
</asp:TableCell>
<asp:TableCell>
<asp:RadioButtonGroupName="sex"Text="男"ID="sexMale"Runat="server"/>
<asp:RadioButtonGroupName="sex"Text="女"ID="sexFeMale"Runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCellHorizontalAlign="Right">
<asp:LabelRunat="server"Text="出生日期"ID="Label5"/>
</asp:TableCell>
<asp:TableCell>
<asp:TextBoxid="txtPersonDOB"Runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCellHorizontalAlign="Right">
<asp:LabelRunat="server"Text="照片"ID="Label6"/>
</asp:TableCell>
<asp:TableCell>
<inputtype="file"id="PersonImage"runat="server"NAME="PersonImage"/></asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCellColumnSpan="2"HorizontalAlign="Center">
<asp:ButtonText="添加"OnClick="AddPerson"Runat="server"ID="Button1"/>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</body>
</HTML>
这样子可以读出数据。
Conn.Open();
OleDbDataReaderdr=sele_img_cmd.ExecuteReader();
if(dr.Read())
{
Response.ContentType="img/*";
Response.BinaryWrite((byte[])dr["照片"]);
}
Conn.Close();