📄 blob.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 + -