业务逻辑层
public SqlDataReader SelectNewsByGuid(Guid id) {
ConfigManager cm = new ConfigManager();
SqlConnection conn = new SqlConnection(cm.DalConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("select * from NewsItem where Guid=@guid", conn);
cmd.Parameters.Add("@guid", SqlDbType.UniqueIdentifier).Value = id;
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
web层
context.Response.ContentType = "text/plain";
NewsManager manager = new NewsManager();
Guid id = new Guid(HttpContext.Current.Request.Params["guid"].ToString());
//业务逻辑层根据id获取新闻信息
SqlDataReader dr = manager.SelectNewsByGuid(id);
if (dr.Read()) {
//取出图片对象
byte[] newimg = (byte[])dr["ImgNew"];
Stream stream = new MemoryStream(newimg);
Image img = Bitmap.FromStream(stream);
HttpContext.Current.Response.BinaryWrite(newimg);
}
各位帮我看看这段代码有什么问题吗?
BinaryWrite(newimg)提示参数为空?
public SqlDataReader SelectNewsByGuid(Guid id) {
ConfigManager cm = new ConfigManager();
SqlConnection conn = new SqlConnection(cm.DalConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand("select * from NewsItem where Guid=@guid", conn);
cmd.Parameters.Add("@guid", SqlDbType.UniqueIdentifier).Value = id;
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
web层
context.Response.ContentType = "text/plain";
NewsManager manager = new NewsManager();
Guid id = new Guid(HttpContext.Current.Request.Params["guid"].ToString());
//业务逻辑层根据id获取新闻信息
SqlDataReader dr = manager.SelectNewsByGuid(id);
if (dr.Read()) {
//取出图片对象
byte[] newimg = (byte[])dr["ImgNew"];
Stream stream = new MemoryStream(newimg);
Image img = Bitmap.FromStream(stream);
HttpContext.Current.Response.BinaryWrite(newimg);
}
各位帮我看看这段代码有什么问题吗?
BinaryWrite(newimg)提示参数为空?
解决方案 »
- C#读取资源文件
- 正则表达式的替换
- 请问各位高手,我在页面之间传参数的时候,怎么把二进制流数据通过post方式,放在http主体上传递呢???
- 重开一帖,情况描述清晰,关于SQL的小问题,大家来看看哈
- 请问关于viewtree的selectindexchange事件问题?
- 一个让人头疼的问题,如何发布web应用程序?
- NET给目录添加权限时出现下面的错误
- 用SqlDataSource绑定存储过程,作为 gridview 的数据源,要使 gridview 某些列不可见,报错
- ASP.NET中怎样include一个Javscript文件?
- 登录后点击一个页面又重新跳转到登录页面
- 子父窗体传值更新
- 网上下了个网站源码安装出错
protected void Bt_Save_Click(object sender, EventArgs e)
{
Stream imgStream=FU_image.PostedFile.InputStream;
int imgLen=FU_image.PostedFile.ContentLength;
string imgName=this.T_image.Text;
byte[] imgBinaryData=new byte[imgLen];
int n=imgStream.Read(imgBinaryData,0,imgLen);
SqlConnection connection = new SqlConnection("Data Source=(local);Database=wxd;Uid=sa;Pwd=sa");
SqlCommand command = new SqlCommand("insert into Image (ImageName,Image) values ( @img_name, @img_data)", connection);
SqlParameter param0 = new SqlParameter("@img_name", SqlDbType.VarChar, 50);
param0.Value = imgName;
command.Parameters.Add(param0);
SqlParameter param1 = new SqlParameter("@img_data", SqlDbType.Image);
param1.Value = imgBinaryData;
command.Parameters.Add(param1);
connection.Open();
int numRowsAffected = command.ExecuteNonQuery();
connection.Close();
this.Panel2.Visible = false;
this.T_image.Text = "";
bind();
}
取图片
public void ProcessRequest (HttpContext context)
{
string imageid = context.Request.QueryString["ImID"];
SqlConnection connection = new SqlConnection("Data Source=(local);Database=wxd;Uid=sa;Pwd=sa");
connection.Open();
SqlCommand command = new SqlCommand("select [Image] from [Image] where ImageID=" + imageid, connection);
SqlDataReader dr = command.ExecuteReader();
dr.Read();
context.Response.BinaryWrite((Byte[])dr[0]);
connection.Close();
context.Response.End(); }
里是否有值。
sqlcmd.Parameters.Add("@cad", SqlDbType.Binary).Value = img;
我是这样写的所以取不出图片已经改好了