加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#从SqlServer数据库读写文件代码

发布时间:2020-12-15 17:55:52 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 %@ Page Language="C#" % !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.d

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

<%@ Page Language="C#" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  private string connectionString = "Data Source=192.168.3.1;Initial Catalog=TestData;User Id=sa;Password=lambada;";
  protected void Button1_Click(object sender,EventArgs e)
  {
  //得到文件数组
  byte[] fileData = FileUpload1.FileBytes;
  //得到文件名字
  string fileName = System.IO.Path.GetFileName(FileUpload1.FileName);
  //得到文件类型
  string fileType = FileUpload1.PostedFile.ContentType;
  
  //构建数据库连接,SQL语句,创建参数
    
  System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(connectionString);
  String strSql = "INSERT INTO FileTable (ContentType,Content,Title)" +
  "VALUES (@ContentType,@Content,@Title)";
  System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand(strSql,myConnection);
  command.Parameters.AddWithValue("@ContentType",fileType);
  command.Parameters.AddWithValue("@Content",fileData);
  command.Parameters.AddWithValue("@Title",fileName);
  //打开连接,执行查询
  myConnection.Open();
  command.ExecuteNonQuery();
  myConnection.Close();
  myConnection.Dispose();
  Response.Redirect(Request.FilePath);
  }
  
  protected void Page_Load(object sender,EventArgs e)
  {
  /*
   CREATE TABLE [FileTable] (
    [FileId] [int] IDENTITY (1,1) NOT NULL,[Title] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL,[ContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL,[Content] [image] NULL,CONSTRAINT [PK_FileTable] PRIMARY KEY  CLUSTERED
    (
        [FileId]
    )  ON [PRIMARY]
  ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  
  */
    
  //构建数据库连接,SQL语句,创建参数
  System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(connectionString);
  String strSql = "select * from FileTable";
  System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand(strSql,myConnection);
  //打开连接,执行查询
  myConnection.Open();
  System.Data.SqlClient.SqlDataReader dr = command.ExecuteReader();
  GridView1.DataSource = dr;
  GridView1.DataBind();
  myConnection.Close();
  myConnection.Dispose();
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <asp:FileUpload ID="FileUpload1" runat="server" />
  <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传文件" />
  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
  <Columns>
  <asp:HyperLinkField DataNavigateUrlFields="FileId" HeaderText="文件名" DataTextField="Title" DataNavigateUrlFormatString="~/Download.ashx?FileId={0}" />
  </Columns>
  </asp:GridView>
  </form>
</body>
</html>

//Download.ashx
<%@ WebHandler Language="C#" Class="Download" %>
using System;
using System.Web;
using System.Data.SqlClient;
public class Download : IHttpHandler
{
  private string connectionString = "Data Source=192.168.3.1;Initial Catalog=TestData;User Id=sa;Password=lambada;";
  public void ProcessRequest(HttpContext context)
  {
    String fileId = context.Request.QueryString["FileId"];
    if (String.IsNullOrEmpty(fileId))
    {
      context.Response.ContentType = "text/html";
      context.Response.Write("无效的ID。");
      return;
    }
    int id = 0;
    if (!Int32.TryParse(fileId,out id))
    {
      context.Response.ContentType = "text/html";
      context.Response.Write("ID 不是数字。");
      return;
    }
  
    SqlConnection myConnection = new SqlConnection(connectionString);
    String strSql = "select * from FileTable Where [email?protected]";
    SqlCommand command = new SqlCommand(strSql,myConnection);
    command.Parameters.AddWithValue("@FileId",fileId);
    //打开连接,执行查询
    myConnection.Open();
    SqlDataReader dr = command.ExecuteReader();
    if (dr.Read())
    {
      String fileName = dr["Title"].ToString();
      if (context.Request.UserAgent.IndexOf("MSIE") > -1)
      {
        fileName = HttpUtility.UrlEncode(fileName);
      }
      context.Response.ClearContent();
      context.Response.ContentType = dr["ContentType"].ToString();
      context.Response.AddHeader("Content-Disposition","attachment;filename=" + fileName);
      context.Response.BinaryWrite((Byte[])dr["Content"]);
    }
    else
    {
      context.Response.ContentType = "text/html";
      context.Response.Write("没找到文件。");
    }
    myConnection.Close();
    myConnection.Dispose();
  }
  
  public bool IsReusable
  {
    get
    {
      return false;
    }
  }
  
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读