无法上传图片的问题

tkscascor 2007-12-03 11:28:02
我在 datalist 的 edit模板添加了 一个fileupload 点击更新就将图片存入数据库
不知道什么原因无法保存到后台, 我 只有50分了 希望 大家来帮忙撒
下面是我的代码
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString(); //获取索引id

try
{
// FileUpload filePhote = (FileUpload)e.Item.FindControl("FileUpload1");//获取更新的图片文件
FileUpload PhotoFile = (FileUpload)e.Item.ItemIndex.FindControl("FileUpload1");
if ((PhotoFile == null) || (!PhotoFile.HasFile))
{
return;
}
// 取得上传之照片文件的长度。
int fileLen = PhotoFile.PostedFile.ContentLength;
// 创建一个字节数组来存储文件的内容。
byte[] Input = new byte[fileLen];
Input = PhotoFile.FileBytes;
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["NetworkTopologyConnectionString"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("UPDATE Topology_controlType SET Ficon = @Photo WHERE FtypeID = @Id", cn))// 更新
{
cmd.Parameters.Add("@Id", SqlDbType.NVarChar, 18).Value = Id;
cmd.Parameters.Add("@Photo", SqlDbType.Image).Value = Input;
cn.Open();
cmd.ExecuteNonQuery();
}
}
DataList1.EditItemIndex = -1;//
DataList1.DataBind();
}
catch
{}
}
...全文
175 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tkscascor 2007-12-04
  • 打赏
  • 举报
回复
恩. 不好意思 .主要是因为更新图片的代码是通过自己定义的函数调用的. 所以粘贴的时候没粘好.太粗心了 55
问题我已经自行解决.不是代码没有问题.
因为我用了 ajax插件的 UpdatePanel控件 所以无法正常运行.
给UpdatePanel控件 triggers属性增加一个postbacktriggers. postbacktriggers的crotrolid设置为datalist1
就能正常更新 显示数据了.
谢谢大家的关心
结帖
flybird_13 2007-12-04
  • 打赏
  • 举报
回复
这样吧~
你把你的代码整理一下~
再发一次~
FileUpload PhotoFile = (FileUpload)e.Item.ItemIndex.FindControl("FileUpload1"); (找不到FileUpload1)
楼顶这句是有问题的~后来你又说改过了~
tkscascor 2007-12-04
  • 打赏
  • 举报
回复
命名 没有问题的
是 CommandName指定成了Update 要更新哦.不然指定到哪里去
flybird_13 2007-12-04
  • 打赏
  • 举报
回复
还有就是CommandName是否指定成了Update~
flybird_13 2007-12-04
  • 打赏
  • 举报
回复
FileUpload PhotoFile = (FileUpload)e.Item.FindControl("FileUpload1");
是能找到FileUpload1的~没什么问题~检查一下控件命名~
tkscascor 2007-12-04
  • 打赏
  • 举报
回复
报错内容就是 未将对象引用设置到对象实例 - -
kmiaoer 2007-12-04
  • 打赏
  • 举报
回复
把他报的错误贴出来啊
tkscascor 2007-12-04
  • 打赏
  • 举报
回复
为什么会找不到fileupload1?!! 我相同地方放的 textbox的值都可以获得.
顺便说一句 FileUpload PhotoFile = (FileUpload)e.Item.ItemIndex.FindControl("FileUpload1");
正确的代码为 FileUpload PhotoFile = (FileUpload)e.Item.FindControl("FileUpload1");
是我粘贴上这里的时候没弄好
cg2007 2007-12-03
  • 打赏
  • 举报
回复
先找到是什么原因,将try去掉,应该会报错,看看是文件没取到还是存入库有错
大正他爹 2007-12-03
  • 打赏
  • 举报
回复
FileUpload PhotoFile = (FileUpload)e.Item.ItemIndex.FindControl("FileUpload1");

没有找到“FileUpload1”,不是空的问题。
liuyun1987 2007-12-03
  • 打赏
  • 举报
回复
FileUpload1.HasFile()判断一下FileUpload是否有文件....
liuyun1987 2007-12-03
  • 打赏
  • 举报
回复
if ((PhotoFile == null) ¦ ¦ (!PhotoFile.HasFile))
{
return;
}
将这句注释之后 执行报错内容 为 未将对象引用设置到实例


根据上面的判断可以,可以肯定PhotoFile里面没有东西了...
tkscascor 2007-12-03
  • 打赏
  • 举报
回复
if ((PhotoFile == null) ¦ ¦ (!PhotoFile.HasFile))
{
return;
}
将这句注释之后 执行报错内容 为 未将对象引用设置到实例
whoo529 2007-12-03
  • 打赏
  • 举报
回复
你用try如何知道什么错误,把错误报告贴出来
程序员老干部 2007-12-03
  • 打赏
  • 举报
回复
FindControl找不到控件吧
tkscascor 2007-12-03
  • 打赏
  • 举报
回复
这帖不能沉啊. 大哥大姐 叔叔婶婶过来帮帮忙忙啊
tkscascor 2007-12-03
  • 打赏
  • 举报
回复
FileUpload PhotoFile = (FileUpload)e.Item.ItemIndex.FindControl("FileUpload1");
到现在为止我 怀疑问题出在这里. PhotoFile 里面没有东西.
赋值不进去.
长弓大侠 2007-12-03
  • 打赏
  • 举报
回复
if ((PhotoFile == null) ¦ ¦ (!PhotoFile.HasFile))
{
return;
}
不报错,估计语句没错,就是逻辑不对,是不是执行到这句就 return 了 或是其它的地方
你检查一下
tkscascor 2007-12-03
  • 打赏
  • 举报
回复
就是 因为不报错 所以才try的 这里忘记写 throw了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧