datatable 绑定数据后Count为0.。。。。。。。

wangsky2 2010-01-18 07:48:01
代码如下:::
public partial class manage_aboutpages_Default : System.Web.UI.Page
{
DataTable dt = new DataTable();

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ShowNoticeInfo();
}
}

#region 显示所有公告信息
protected void ShowNoticeInfo()
{
dt = CommonCS.GetInfo("Notice_ShowAll");

if (dt.Rows.Count == 0)//这里正确,可以得到正常值
{
msg.Visible = true;
msg.Text = Message.RetMsg("noinfo", "");
healthist.Visible = false;
}

}

protected void delFile(int id)
{
int rowsCount = dt.Rows.Count;//这里就不行了。总是0.dt是全局变量啊。怎么为0??
//是否具有数据行
if (rowsCount>0)
{
for (int i = 0; i < rowsCount;i++ )
{
//根据id取得附件文件地址
if (id==Convert.ToInt32(dt.Rows[i]["id"]))
{

string filePath = Server.MapPath(dt.Rows[i]["filesaddress"].ToString());

//文件是否存在,存在则删除
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
}

}
}
}
}
...全文
172 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnjzjdd 2010-01-19
  • 打赏
  • 举报
回复
领教。。。。。。。。。。
jenny0810 2010-01-19
  • 打赏
  • 举报
回复
12#可行
cena_jin 2010-01-19
  • 打赏
  • 举报
回复
小菜来吼吼!!
wangsky2 2010-01-19
  • 打赏
  • 举报
回复
我的意思是:
我现在已经把数据绑定到前台的repeater控件中了。控件中有一个字段,
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Delete" CommandArgument='<%# Eval("id") %>' OnClientClick="delone(); ">删除</asp:LinkButton>
执行的删除操作。

#region 删除当前行记录
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
int id = Convert.ToInt32(e.CommandArgument);//这个方法中能不能得到两个参数啊。要是
能够得到两个就好了。就不用上面的方法了。呵呵。。。
if (e.CommandName == "Delete")//要和aspx名称一样
{
try
{
//删除附件文件
delFile(id);

CommonCS.del(id, "Notice_Delete");
//ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('删除成功');", true);
}
catch (System.Exception ex)
{
string mess = Message.RetMsg("delfailerror", ex.ToString());

ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('" + mess + "');", true);
}


ShowNoticeInfo();
}


}
mngzilin 2010-01-19
  • 打赏
  • 举报
回复
方法一:static DataTable dt = new DataTable();

方法二:
protected void ShowNoticeInfo()
{
dt = CommonCS.GetInfo("Notice_ShowAll");
if(dt.Rows.Count!=0)
ViewState["mydt"]=dt;


protected void delFile(int id)
{
if(ViewState["mydt"]!=null)
dt=ViewState["mydt"] as DataTable;

int rowsCount = dt.Rows.Count;//这里就不行了。总是0.dt是全局变量啊。怎么为0??
//是否具有数据行
if (rowsCount>0)
alan0128 2010-01-19
  • 打赏
  • 举报
回复
DataTable dt = new DataTable();
dt = CommonCS.GetInfo("Notice_ShowAll");
protected void delFile(int id)
{
int rowsCount = dt.Rows.Count;//这里就不行了。总是0.dt是全局变量啊。怎么为0??
//是否具有数据行
if (rowsCount>0)
{

缪军 2010-01-18
  • 打赏
  • 举报
回复
差点给楼上几位蒙了,你们用viewstate保存Datatable是行不通的,
当datatable大到一定程度的时候,viewstate会截断数据

正确做法是重新提交查询

大聪 2010-01-18
  • 打赏
  • 举报
回复
好好学习下Web编程基础
缪军 2010-01-18
  • 打赏
  • 举报
回复
楼上的,静态变量,亏你想得出来,并发就完蛋了
chen_ya_ping 2010-01-18
  • 打赏
  • 举报
回复
public static datatable dt=new datatable();
kingcsx666 2010-01-18
  • 打赏
  • 举报
回复
对于web都不在一个方法里面,肯定是null啦

因为都重新初始化过,全局变量也没一点用,跟winform是不同的

用viewstate["KeyNames"]=dt;保存,用的时候在取出 dt=(DataTable)viewstate["KeyNams"];
polarissky 2010-01-18
  • 打赏
  • 举报
回复
1楼3楼,up
ouc_ajax 2010-01-18
  • 打赏
  • 举报
回复
分清网页的处理过程:
Page ->Page_Load -> ShowNoticeInfo (正确处理了DataTable,Rows.Count != 0)
页面消亡!!!
点击按钮提交 Page (完全的一个新实例)->Page_Load -> (没有执行ShowNoticeInfo )
-> delFile ( 这里的Rows.Count肯定为0)
wiki14 2010-01-18
  • 打赏
  • 举报
回复
wuyq11 2010-01-18
  • 打赏
  • 举报
回复
dt重新初始化
使用ViewSate["dt"]保存数据
【路径规划】(螺旋)基于A星全覆盖路径规划研究(Matlab代码实现)内容概要:本文围绕“基于A星算法的全覆盖路径规划”展开研究,重点介绍了一种结合螺旋搜索策略的A星算法在栅格地图中的路径规划实现方法,并提供了完整的Matlab代码实现。该方法旨在解决移动机器人或无人机在未知或部分已知环境中实现高效、无遗漏的区域全覆盖路径规划问题。文中详细阐述了A星算法的基本原理、启发式函数设计、开放集与关闭集管理机制,并融合螺旋遍历策略以提升初始探索效率,确保覆盖完整性。同时,文档提及该研究属于一系列路径规划技术的一部分,涵盖多种智能优化算法与其他路径规划方法的融合应用。; 适合人群:具备一定Matlab编程基础,从事机器人、自动化、智能控制及相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于服务机器人、农业无人机、扫地机器人等需要完成区域全覆盖任务的设备路径设计;②用于学习和理解A星算法在实际路径规划中的扩展应用,特别是如何结合特定搜索策略(如螺旋)提升算法性能;③作为科研复现与算法对比实验的基础代码参考。; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注A星算法与螺旋策略的切换逻辑与条件判断,并可通过修改地图环境、障碍物分布等方式进行仿真实验,进一步掌握算法适应性与优化方向。

62,254

社区成员

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

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

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

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