asp.net 的ashx文件中 输出表或者数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 的ashx文件中 输出表或者数组相关的知识,希望对你有一定的参考价值。

我要ashx查询xml文件中的多个值,如何输入一个表或者数组,如何在页面接收。最好给个简单的实例,谢谢!

void btnAdd_Click(Object s, EventArgs e)
if (UpFile.HasFile)//判断是否存在文件
if (CheckFileType(UpFile.FileName))//判断文件类型
AddFile(UpFile.FileName, UpFile.FileContent);//调用AddFile方法
rptFiles.DataBind();//数据绑定


///方法AddFile
///输入参数:文件名fileName,文件流upload
///输出参数:无
private void AddFile(string fileName, System.IO.Stream upload)

SqlConnection con = new SqlConnection(...)//新建数据库连接
SqlCommand cmd = new SqlCommand("INSERT File (FileName) Values (@FileName;"+"SELECT @Identity=SCOPE_IDENTITY()", con);//
cmd.Parameters.AddWithValue("@FileName",fileName);//参数赋值
SqlParameter idParm = cmd.Parameters.Add("Identity",SqlDbType.Int);
idParm.Direction = ParameterDirection.Output;

using (con)//使用using进行垃圾回收
con.Open();//打开数据库连接
cmd.ExecuteNonQuery();//执行插入语句
int newFileId = (int)idParm.Value;//将idParm的值转换成整形并赋值给newFileID
StoreFile(newFileId,upload, con);//调用保存文件方法


///保存文件方法StoreFile
///输入参数:文件编号fileID,文件流upload,连接命令connection
/// 输入参数:无
private void StoreFile(int fileId, Stream upload, SqlCommand connection)
int bufferLen = 8040;//声明变量bufferLen并赋值8040
BinaryReader br = new BinaryReader(upload);//实例化二进制读取器,读取upload流
byte[] chunk = br.ReadBytes(bufferLen);//从流中读入bufferLen个字节数组,并使当前位置提升bufferLen,存入chunk数组中

SqlCommand cmd = new SqlCommand("UPDATE File SET FileBytes=@Buffer WHERE FileId=@FileId", connection);
cmd.Parameters.AddWithValue(@FileId, fileId);//参数赋值
cmd.Parameters.Add("@Buffer", SqlDbType.VarBinary, bufferLen).Value = chunk;//参数赋值
cmd.ExecuteNonQuery();//执行更新语句

SqlCommand cmdAppend = new SqlCommand("UPDATE File SET FileBytes .WRITE(Buffer,Null,0) WHERE FileId=@FileId", connection);
cmdAppend.Parameters.AddWithValue("@FileID", fileId);
cmdAppend.Parameters.Add("Buffer", SqlDbType.VarBinary, bufferLen);
chunk = br.ReadBytes(bufferLen);

while (chunk.Length > 0)//循环读取数据流
cmdAppend.Parameters["@Buffer"].Value = chunk;
cmdAppend.ExecuteNonQuery();
chunk = br.ReadBytes(bufferLen);

br.Close();//关闭BinaryReader

另外,虚机团上产品团购,超级便宜
参考技术A Response.ContentType = "text/xml";
Response.Charset = "GB2312";
Response.Write("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
stringBuilder sbhtml=new stringBuilder();
Response.Write("<pictures>");
if (dt != null && dt.Rows.Count > 0)

sbhtml.append("<table>");
foreach (DataRow row in dt.Rows)

sbhtml.append("<tr>");
sbhtml.append("<td>");
sbhtml.append( row["ALBUM_NAME"].ToString());
sbhtml.append( row["ALBUM_URL"].ToString() );
sbhtml.append( row["ALBUM_DESC"].ToString() );
sbhtml.append("</td>");
sbhtml.append("</tr>");

sbhtml.append("</table>");
本回答被提问者采纳
参考技术B 是不是问的ajax异步的问题? 参考技术C 问题提的太笼统了,具体点,或者直接说你遇到的实际问题

ASP.NET web 应用程序项目

ASP.NET web  应用程序项目

.ashx

.ashx.cs

aspx包括前台一些代码要处理,ashx可以看作是没有aspx页面中前台代码的后台.cs文件。
没有了前台代码,服务器负担少一点,响应速度相比aspx下就快一些

ashx简洁一点,ashx执行要早于aspx,没有前台页面,减少了控件树的生成

ashx 文件叫“一般处理文件”,这种文件是不带前台界面的,不会生成也不会自带任何的html前台代码,只做一般接收数据处理数据或者返回纯字符串(比如json字串),所以这种文件只会有一个。
Model,数据模型
JSON数据类型
将序列化的数据写入 HTTP 响应消息的正文
http://localhost:xxxx/api/products/

以上是关于asp.net 的ashx文件中 输出表或者数组的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET ashx文件如何客户端提交的JSON字符串转换成JSON对象然后把值读出来?

ASP.NET web 应用程序项目

asp.net 建 ashx的时候为啥没有 ashx.cs 后台文件

【ASP.NET】VS2012 ashx不能处理html页面

两种方法实现asp.net方案的前后端数据交互(aspx文件html+ashx+ajax)

asp.net 一般处理程序(ashx)如何多次接收上传文件(多文件批量上传)