⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blob.aspx

📁 asp.net经典案例资料
💻 ASPX
字号:
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>
  <head>
  <title>Blob Demo</title>
  <script language="C#" runat="server" >

  // Public variables
  DataTable dataTable;

  public void Page_Load()
  {
    //Create Connection object
    string dataSource = "Data Source=localhost;";
    string security = "user id=sa; password=;";
    string initialCatalog = "initial catalog=pubs;";
    string cnnString = dataSource + security + initialCatalog;
    SqlConnection connection = new SqlConnection(cnnString);

    // Create Command object
    string strSql = " SELECT a.pub_id, pub_name, city, state, pr_info, logo ";
    strSql += " FROM publishers as a, pub_info ";
    strSql += " WHERE a.pub_id = pub_info.pub_id ";
    SqlCommand command = new SqlCommand(strSql, connection);

    // Create DataReader and dataTable
    SqlDataReader reader = null;
    dataTable = new DataTable();
    dataTable.Columns.Add( new DataColumn("id", typeof(string)));
    dataTable.Columns.Add( new DataColumn("name", typeof(string)));
    dataTable.Columns.Add( new DataColumn("city", typeof(string)));
    dataTable.Columns.Add( new DataColumn("state", typeof(string)));
    dataTable.Columns.Add( new DataColumn("info", typeof(string)));
    dataTable.Columns.Add( new DataColumn("logo_pic", typeof(string)));

    // Variable to read blob
    FileStream fs = null;
    BinaryWriter bw = null;
    int bufferSize = 256;
    byte[] outbyte = new byte[bufferSize];
    int retval;
    long startIndex = 0;

    try
    {
      connection.Open();
      reader = command.ExecuteReader(CommandBehavior.SequentialAccess);

      while(reader.Read() == true)
      {
        DataRow dataRow = dataTable.NewRow();
        dataRow["id"]    = reader.GetString(0);
        dataRow["name"]  = (reader.IsDBNull(1))? "":reader.GetString(1);
        dataRow["city"]  = (reader.IsDBNull(2))? "":reader.GetString(2);
        dataRow["state"] = (reader.IsDBNull(3))? "":reader.GetString(3);
        dataRow["info"]  = (reader.IsDBNull(4))? "":reader.GetString(4);
        dataRow["logo_pic"] = (string)dataRow["id"] + ".bmp";
        dataTable.Rows.Add(dataRow);

        // Create stream
        string Path = Request.PhysicalApplicationPath + "\\Lesson41\\";
        fs = new FileStream( Path + (string)dataRow["logo_pic"], 
          FileMode.OpenOrCreate, FileAccess.Write);
        bw = new BinaryWriter(fs);

        //Read bytes
        startIndex = 0;
        retval = (int)reader.GetBytes(5, startIndex, outbyte, 0, bufferSize);
        while (retval == bufferSize)
        {
          bw.Write(outbyte, 0, retval);
          bw.Flush();
          startIndex+= bufferSize;
          retval = (int)reader.GetBytes(5, startIndex, outbyte, 0, bufferSize);
        }
        bw.Write(outbyte, 0, retval);
        bw.Close();
      }
    }
    catch(Exception e)
    {
      Response.Write(e.ToString());
      return;
    } 
    finally
    {
      if(bw != null)
        bw.Close();
      if(reader != null)
        reader.Close();
      connection.Close();
    }
    dataTable.AcceptChanges();

    if(!IsPostBack)
    {
      dataList1.DataSource = dataTable;
      dataList1.DataBind();
    }
  }

  public void OnItemCommand(object sender, DataListCommandEventArgs arg)
  {
    dataList1.SelectedIndex = arg.Item.ItemIndex;
    dataList1.DataSource = dataTable;
    dataList1.DataBind();
  }
  </script>
  </head>

  <body>
  <form id="form1" runat="server">
    <asp:DataList id="dataList1" runat="server" RepeatLayout="Flow" 
      DataKeyField="id" OnItemCommand="OnItemCommand">
    <HeaderTemplate>
      <ol>
    </HeaderTemplate>

    <ItemTemplate>
      <li>
      <asp:LinkButton runat="server" 
        Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />
      </li>
    </ItemTemplate>

    <SelectedItemTemplate>
      <li>详细信息<ul>
      <li>名字: <%# DataBinder.Eval(Container.DataItem, "name") %>
      <li>城市: <%# DataBinder.Eval(Container.DataItem, "city") %>
      <li>州:   <%# DataBinder.Eval(Container.DataItem, "state") %>
      <li>简介:<br/> <%# DataBinder.Eval(Container.DataItem, "info") %>
      <li>徽标:<br/> 
        <asp:Image runat="server" AlternateText="Image Description"
          ImageUrl='<%# DataBinder.Eval(Container.DataItem, "logo_pic")%>' />
      </ul></li>
    </SelectedItemTemplate>

    <FooterTemplate>
      </ol>
    </FooterTemplate>
    </asp:DataList>
  </form>
  </body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -