上传文件到MsSql数据库中

来源:互联网 发布:单片机1602液晶显示 编辑:程序博客网 时间:2024/04/19 08:38

注意加:
using System.IO ;
using System.Data.SqlClient;

<input id="UP_FILE" type="file" size="24" name="UP_FILE" runat="server">

  // HttpPostedFile对象,用于读取图象文件属性
   HttpPostedFile UpFile = UP_FILE.PostedFile;
  
// FileLength 变量存储图片的字节大小
   int FileLength = UpFile.ContentLength;
   
try{
    
if (FileLength == 0)
    
{
     txtMessage.Text 
= "<b>您未选择上传的文件</b>";
    }

    
else
    
{
     
// 创建存储图片文件的临时 Byte 数组
     Byte[] FileByteArray = new Byte[FileLength];
     
// 建立数据流对象
     Stream StreamObject = UpFile.InputStream;  
     
// 读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
     StreamObject.Read(FileByteArray,0,FileLength);   
     
// 数据库操作
     string ConnStr = "server=127.0.0.1;database=northwind;uid=sa;pwd=zhangzs";
     
string query = "INSERT INTO ImageTable (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@ImageData, @ImageContentType, @ImageDescription, @ImageSize)";
     SqlCommand myCommand 
= new SqlCommand(query, new SqlConnection(ConnStr));
     
// 添加各项参数
     myCommand.Parameters.Add("@ImageData", SqlDbType.Image);
     myCommand.Parameters.Add(
"@ImageContentType", SqlDbType.VarChar, 50);
     myCommand.Parameters.Add(
"@ImageDescription", SqlDbType.VarChar, 200);
     myCommand.Parameters.Add(
"@ImageSize", SqlDbType.BigInt);
     
//给各参数赋值
     myCommand.Parameters["@ImageData"].Value = FileByteArray;
     myCommand.Parameters[
"@ImageContentType"].Value = UpFile.ContentType;
     myCommand.Parameters[
"@ImageDescription"].Value = txtDescription.Text;
     myCommand.Parameters[
"@ImageSize"].Value = FileLength;
     
     
// 执行数据库操作
     myCommand.Connection.Open();
     myCommand.ExecuteNonQuery();
     myCommand.Connection.Close();      
     
// 提示上传成功
     txtMessage.Text = "<b>上传文件成功</b>";
    }

   }
 
   
catch (Exception ex) 
   
{
    
// 使用 Label 标签显示异常
    txtMessage.Text = ex.Message.ToString();
   }

 
同样的,Word,Text文件都可以如此上传。
上例中建表结构:
CREATE TABLE [dbo].[ImageTable] (
    
[ImageID] [int] IDENTITY (11NOT NULL ,
    
[ImageData] [image] NULL ,
    
[ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    
[ImageDescription] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    
[ImageSize] [int] NULL 
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有