向SQL Server数据库添加图片.docx

上传人:b****4 文档编号:4801973 上传时间:2022-12-09 格式:DOCX 页数:25 大小:29.45KB
下载 相关 举报
向SQL Server数据库添加图片.docx_第1页
第1页 / 共25页
向SQL Server数据库添加图片.docx_第2页
第2页 / 共25页
向SQL Server数据库添加图片.docx_第3页
第3页 / 共25页
向SQL Server数据库添加图片.docx_第4页
第4页 / 共25页
向SQL Server数据库添加图片.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

向SQL Server数据库添加图片.docx

《向SQL Server数据库添加图片.docx》由会员分享,可在线阅读,更多相关《向SQL Server数据库添加图片.docx(25页珍藏版)》请在冰豆网上搜索。

向SQL Server数据库添加图片.docx

向SQLServer数据库添加图片

程序代码:

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

向SQL 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

 9pt 宋体">

    

      

Table Runat="server" Width="50%" BorderWidth="1" BackColor="Beige" ID="Table1"

     Font-Name="宋体" Font-Size="9pt">

        

TableRow>

          

TableCell ColumnSpan="2" BackColor="#ff0000">

            

Label ForeColor="#ffffff" font-bold="True" Runat="server" Text="添加新用户" ID="Label1" />

          

TableCell>

        

TableRow>

        

TableRow>

          

TableCell HorizontalAlign="Right">

            

Label Runat="server" Text="姓名" ID="Label2" />

          

TableCell>

          

TableCell>

            

TextBox id="txtPersonName" Runat="server" />

          

TableCell>

        

TableRow>

        

TableRow>

          

TableCell HorizontalAlign="Right">

            

Label Runat="server" Text="电子邮件" ID="Label3" />

          

TableCell>

          

TableCell>

            

TextBox id="txtPersonEmail" Runat="server" />

          

TableCell>

        

TableRow>

        

TableRow>

          

TableCell HorizontalAlign="Right">

            

Label Runat="server" Text="性别" ID="Label4"/>

          

TableCell>

          

TableCell>

            

RadioButton GroupName="sex"  Text="男" ID="sexMale" Runat="server" />

            

RadioButton GroupName="sex"  Text="女" ID="sexFeMale" Runat="server" />

          

TableCell>

        

TableRow>

        

TableRow>

          

TableCell HorizontalAlign="Right">

            

Label Runat="server" Text="出生日期" ID="Label5"/>

          

TableCell>

          

TableCell>

            

TextBox id="txtPersonDOB" Runat="server" />

          

TableCell>

        

TableRow>

        

TableRow>

          

TableCell HorizontalAlign="Right">

            

Label Runat="server" Text="照片" ID="Label6"/>

          

TableCell>

          

TableCell>

            

TableCell>

        

TableRow>

        

TableRow>

          

TableCell ColumnSpan="2" HorizontalAlign="Center">

            

Button Text=" 添  加 " OnClick="AddPerson" Runat="server" ID="Button1"/>

          

TableCell>

        

TableRow>

      

Table>

    

[本日志由迈克老猫于2005-01-0610:

43PM编辑]

引用通告地址(0):

[收藏此页]

 迈克老猫于2004-06-0905:

16PM发表评论:

 

SQL Server提供了一个特别的数据类型:

image,它是一个包含...

SQL Server提供了一个特别的数据类型:

image,它是一个包含binary数据的类型。

下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。

在这篇文章中我们要看到如何在SQL Server中存储和读取图片。

  1、建立一个表:

  在SQL SERVER中建立这样结构的一个表:

列名  类型 目的  

ID  Integer  主键ID  

IMGTITLE  Varchar(50)  图片的标题  

IMGTYPE  Varchar(50) 图片类型. ASP.NET要以辨认的类型 

IMGDATA Image 用于存储二进制数据  

  2、存储图片到SQL SERVER数据库中

  为了能存储到表中,你首先要上传它们到你的WEB 服务器上,你可以开发一个web form,它用来将客户端中TextBox web control中的图片入到你的WEB服务器上来。

将你的 encType 属性设置为:

myltipart/formdata.

Stream imgdatastream = File1.PostedFile.InputStream;

int imgdatalen = File1.PostedFile.ContentLength;

string imgtype = File1.PostedFile.ContentType;

string imgtitle = TextBox1.Text;

byte[] imgdata = new byte[imgdatalen];

int n = imgdatastream.Read(imgdata,0,imgdatalen);

string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"];

SqlConnection connection = new SqlConnection(connstr);

SqlCommand command = new SqlCommand

         ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata)

         VALUES ( @imgtitle, @imgtype,@imgdata )", connection );

SqlParameter paramTitle = new SqlParameter

         ("@imgtitle", SqlDbType.VarChar,50 );

paramTitle.Value = imgtitle;

command.Parameters.Add( paramTitle);

SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image );

paramData.Value = imgdata;

command.Parameters.Add( paramData );

SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 );

paramType.Value = imgtype;

command.Parameters.Add( paramType );

connection.Open();

int numRowsAffected = command.ExecuteNonQuery();

connection.Close(); 

  3、从数据库中恢复读取

  现在让我们来从SQL Server中读取我们放入的数据吧!

我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。

private void Page_Load(object sender, System.EventArgs e)

{

 string imgid =Request.QueryString["imgid"];

 string connstr=((NameValueCollection)

 Context.GetConfig("appSettings"))["connstr"];

 string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " + imgid;

 SqlConnection connection = new SqlConnection(connstr);

 SqlCommand command = new SqlCommand(sql, connection);

 connection.Open();

 SqlDataReader dr = command.ExecuteReader();

 if(dr.Read())

 {

  Response.ContentType = dr["imgtype"].ToString();

  Response.BinaryWrite( (byte[]) dr["imgdata"] );

 }

 connection.Close();

  要注意的是Response.BinaryWrite 而不是Response.Write.

  下面给大家一个用于C# Winform的存入、读取程序。

其中不同请大家自己比较!

(为了方便起见,我将数据库字段简化为二个:

imgtitle和imgdata。

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.IO;

using System.Data.SqlClient;

namespace WindowsApplication21

{

 /// <summary>

 /// Form1 的摘要说明。

 /// </summary>

 public class Form1 :

 System.Windows.Forms.Form

 {

  private System.Windows.Forms.Button button1;

  /// <summary>

  /// 必需的设计器变量。

  /// </summary>

  private System.ComponentModel.Container components = null;

  private string ConnectionString = "Integrated Security=SSPI;Initial Catalog=;Data Source=localhost;";

  private SqlConnection conn = null; 

  private SqlCommand cmd = null;

  private System.Windows.Forms.Button button2;

  private System.Windows.Forms.PictureBox pic1;

  private System.Windows.Forms.OpenFileDialog openFileDialog1;

  private string sql = null;

  private System.Windows.Forms.Label label2;

  private string nowId=null;

 public Form1()

 {

  //

  // Windows 窗体设计器支持所必需的

  //

  InitializeComponent();

  conn = new SqlConnection(ConnectionString); 

  //

  // TODO:

 在 InitializeComponent 调用后添加任何构造函数代码

  //

 }

 /// <summary>

 /// 清理所有正在使用的资源。

 /// </summary>

 protected override void Dispose( bool disposing )

 {

  if (conn.State == ConnectionState.Open)

   conn.Close();

  if( disposing )

  {

   if (components !

= null) 

   {

    components.Dispose();

   }

  }

  base.Dispose( disposing );

 }

 #region Windows Form Designer generated code

 /// <summary>

 /// 设计器支持所需的方法 - 不要使用代码编辑器修改

 /// 此方法的内容。

 /// </summary>

 private void InitializeComponent()

 {

  this.button1 = new System.Windows.Forms.Button();

  this.pic1 = new System.Windows.Forms.PictureBox();

  this.button2 = new System.Windows.Forms.Button();

  this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();

  this.label2 = new System.Windows.Forms.Label();

  this.SuspendLayout();

  // 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1