向SQL Server数据库添加图片和文字的功能

博客给出了使用C#向SQL Server数据库添加图片和文字的代码。先在SQL查询分析器执行语句创建表和存储过程,接着展示了aspx和aspx.cs的完整代码,包含用户信息输入框、文件上传及数据库写入操作,还处理了添加成功或失败的情况。

下面的代码实现向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

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

//---------------VB。NET-------------------
<%@ 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)
  ' 创建Connection和Command对象
  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 style="FONT: 9pt 宋体">
    <form enctype="multipart/form-data" runat="server" ID="Form1">
      <asp:Table Runat="server" Width="50%" BorderWidth="1" BackColor="Beige" ID="Table1"
	 Font-Name="宋体" Font-Size="9pt">
        <asp:TableRow>
          <asp:TableCell ColumnSpan="2" BackColor="#ff0000">
            <asp:Label ForeColor="#ffffff" font-bold="True" Runat="server" Text="添加新用户" ID="Label1" />
          </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
          <asp:TableCell HorizontalAlign="Right">
            <asp:Label Runat="server" Text="姓名" ID="Label2" />
          </asp:TableCell>
          <asp:TableCell>
            <asp:TextBox id="txtPersonName" Runat="server" />
          </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
          <asp:TableCell HorizontalAlign="Right">
            <asp:Label Runat="server" Text="电子邮件" ID="Label3" />
          </asp:TableCell>
          <asp:TableCell>
            <asp:TextBox id="txtPersonEmail" Runat="server" />
          </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
          <asp:TableCell HorizontalAlign="Right">
            <asp:Label Runat="server" Text="性别" ID="Label4"/>
          </asp:TableCell>
          <asp:TableCell>
            <asp:RadioButton GroupName="sex"  Text="男" ID="sexMale" Runat="server" />
            <asp:RadioButton GroupName="sex"  Text="女" ID="sexFeMale" Runat="server" />
          </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
          <asp:TableCell HorizontalAlign="Right">
            <asp:Label Runat="server" Text="出生日期" ID="Label5"/>
          </asp:TableCell>
          <asp:TableCell>
            <asp:TextBox id="txtPersonDOB" Runat="server" />
          </asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
          <asp:TableCell HorizontalAlign="Right">
            <asp:Label Runat="server" Text="照片" ID="Label6"/>
          </asp:TableCell>
          <asp:TableCell>
            <input type="file" id="PersonImage" runat="server" NAME="PersonImage" /></asp:TableCell>
        </asp:TableRow>
        <asp:TableRow>
          <asp:TableCell ColumnSpan="2" HorizontalAlign="Center">
            <asp:Button Text=" 添  加 " OnClick="AddPerson" Runat="server" ID="Button1"/>
          </asp:TableCell>
        </asp:TableRow>
      </asp:Table>
    </form>
</body>
</HTML>

//------------------------------------------------------------------------------------------

C#版的(翻译孟老师的^_^)
aspx:
<%@ Page language="c#" Codebehind="Register.aspx.cs" AutoEventWireup="false" Inherits="shop.Register" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>注册</title>
</HEAD>
<body style="FONT-SIZE: 12px">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<TABLE id="Table1" cellSpacing="0" cellPadding="0" width="50%" align="center" bgColor="beige"
border="0">
<TR>
<TD bgColor="#cccc66" colSpan="2" height="25" rowSpan="">添加新用户</TD>
</TR>
<TR>
<TD>姓名</TD>
<TD>
<asp:TextBox id="txtPersonName" runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD>电子邮件</TD>
<TD>
<asp:TextBox id="txtPersonEmail" runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD>性别</TD>
<TD>
<asp:RadioButton GroupName="sex" Text="男" ID="sexMale" Runat="server" />
<asp:RadioButton GroupName="sex" Text="女" ID="sexFeMale" Runat="server" />
</TD>
</TR>
<TR>
<TD>出生日期</TD>
<TD>
<asp:TextBox id="txtPersonDOB" runat="server"></asp:TextBox></TD>
</TR>
<TR>
<TD>照片</TD>
<TD><INPUT type="file" id="personImage" name="PersonImage" runat="server"></TD>
</TR>
<TR>
<TD align="center" colSpan="2">
<asp:Button id="Button1" OnClick="AddPerson" runat="server" Text="添加"></asp:Button>
</TD>
</TR>
</TABLE>
</FONT>
</form>
</body>
</HTML>
aspx.cs:
using System;
using System.IO;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
namespace shop
{
/// <summary>
/// Register 的摘要说明。
/// </summary>
public class Register : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtPersonName;
protected System.Web.UI.WebControls.TextBox txtPersonEmail;
protected System.Web.UI.WebControls.RadioButton sexMale;
protected System.Web.UI.WebControls.RadioButton sexFeMale;
protected System.Web.UI.WebControls.TextBox txtPersonDOB;
protected System.Web.UI.HtmlControls.HtmlInputFile personImage;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
public void AddPerson(object sender, System.EventArgs e)
{
int intImageSize;
string strImageType;
Stream ImageStream;
intImageSize = personImage.PostedFile.ContentLength; // 文件大小
strImageType = personImage.PostedFile.ContentType; // 文件类型
ImageStream = personImage.PostedFile.InputStream;
byte[] ImageContent = new byte[intImageSize];
int intStatus = ImageStream.Read(ImageContent, 0, intImageSize);

// 写入数据库
string strConn = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection myConnection = new SqlConnection(strConn);
SqlCommand myCommand = new SqlCommand("sp_person_isp", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;

myCommand.Parameters.Add("@PersonEmail", SqlDbType.VarChar, 255).Value = txtPersonEmail.Text;
myCommand.Parameters.Add("@PersonName", SqlDbType.VarChar, 255).Value = txtPersonName.Text;
myCommand.Parameters.Add("@PersonSex", SqlDbType.Char, 1);
if(sexMale.Checked)
myCommand.Parameters["@PersonSex"].Value = "M";
else
myCommand.Parameters["@PersonSex"].Value = "F";
myCommand.Parameters.Add("@PersonDOB", SqlDbType.DateTime).Value = txtPersonDOB.Text;
myCommand.Parameters.Add("@PersonImage", SqlDbType.Image).Value = ImageContent;
myCommand.Parameters.Add("@PersonImageType", SqlDbType.VarChar, 255).Value = strImageType;

try
{
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
Response.Write("添加成功!");
}
catch(System.Exception SQLExe)
{
Response.Write("添加失败!原因:"+SQLExe.ToString());
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值