【发布时间】:2015-06-05 03:47:58
【问题描述】:
我已为用户提供了下载由提供商上传的图像的选项。单击下载按钮时,图像会下载。 但我还想存储点击下载按钮的次数。 为此,我输入了此代码,但它不起作用。
我尝试了几种方法,比如声明一个 int 变量并递增它。没用。然后我尝试了这个。还是行不通。我做错了什么?
protected void btn_download_Click(object sender, EventArgs e)
{
var res = (byte[])Session["Image"];
Response.Clear();
MemoryStream ms = new MemoryStream(res);
Response.ContentType = "image/jpeg";
Response.AddHeader("content-disposition", "attachment;filename=Image.jpg");
Response.Buffer = true;
ms.WriteTo(Response.OutputStream);
Response.End();
try
{
SqlCommand command = new SqlCommand("UPDATE [ImageWithTags] SET DownloadCount = DownloadCount + 1 WHERE ImageID='" + DropDownList1.SelectedItem.Text + "'", con);
con.Open();
command.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
【问题讨论】:
-
您遇到了什么错误(如果有)?调试时会发生什么?
-
没有错误出现。它只是不将下载计数存储在数据库中
-
如果您将断点放在
con.Open(),然后查看您的command变量,您的查询是否符合您的预期? -
您可以使用Viewstate 或Session variable
-
在 response.end 之前执行 SQL 命令怎么样?
标签: c# asp.net sql-server click increment