100分的问题:用户代码未处理 System.NullReferenceException Message="未将对象引用设置到对象的实例。"
遇到这样一个怪事:
我的项目所有aspx都包含了menu.html文件,当鼠标移到菜单的左角,再往主页面移时,不管当前显示的是何页面,都会引发如下异常,位置指向Default.aspx.cs的如下代码处:
/**
* 取得单位台帐表中最大的台帐年月
**/
public int GetMaxTZYM()
{
Response.Write("<script>window.alert('" + "GetMaxTZYM" + "')</script>");
//return int.Parse( DBHelp.ExcuteScalar("select max(tzyy*100+tzmm) from dwtz",CommandType.Text,null) );
/**
string str=DBHelp.ExcuteScalar("select max(tzyy*100+tzmm) from dwtz",CommandType.Text,null);
int i=0;
int.TryParse(str,out i);
return i;**/
int i = 0;
string sql = "select max(tzyy*100+tzmm) tzym from dwtz";
DataSet ds = DBHelp.ExcuteDataSet(sql, CommandType.Text, null);
if (ds.Tables[0].Rows.Count > 0)
{
i = int.Parse(ds.Tables[0].Rows[0]["tzym"].ToString());
}
return i;
}
错误总是指向if (ds.Tables[0].Rows.Count > 0)这一行,但奇怪的是没有执行Response.Write("<script>window.alert('" + "GetMaxTZYM" + "')</script>");
重新生成解决方案也没有用。
menu.html:
<body bgcolor="#e8f1d6">
<!-- Begin Publishing Scripts of Flash Menu menu -->
<div id="fm_placeholder_menu" style="width: 629px; height: 28px ">
</div><script type="text/javascript" defer> //<![CDATA[
var fm_menu = function() {
function getPos() {
var p = [0, 0]; var e = document.getElementById('fm_placeholder_menu');
do { p[0] += e.offsetTop; p[1] += e.offsetLeft; } while (e = e.offsetParent); return p;
}
function move() {
var p = getPos(); var m = document.getElementById('fm_wrapper_menu'); m.style.top = p[0] + 'px'; m.style.left = p[1] + 'px';
}
var create = function() {
var s; if (document.all && !window.opera) {
s = '<object id="fm_menu_menu" width="629px" height="28px" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '
+ 'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">'
+ '<param name="quality" value="high" /><param name="scale" value="noscale" /><param name="salign" value="LT" />'
+ '<param name="movie" value="menu.swf" /><param name="flashvars" value="callback=fm_menu">'
+ '<param name="menu" value="false" /><param name="wmode" value="transparent" /></object>';
}
else {
s = '<embed type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" '
+ 'id="fm_menu_menu" width="629px" height="28px" src="menu.swf" wmode="transparent" '
+ 'flashvars="callback=fm_menu" quality="high" scale="noscale" menu="false" salign="LT" />';
}
var p = getPos(); var m = document.createElement('div'); m.id = 'fm_wrapper_menu'; m.style.position = 'absolute';
m.style.zIndex = '100'; m.style.top = p[0] + 'px'; m.style.left = p[1] + 'px'; m.innerHTML = s;
document.body.insertBefore(m, document.body.firstChild); setInterval(move, 500);
} ();
return {
expand: function() {
document.getElementById('fm_menu_menu').style.height = '172px';
},
collapse: function() {
document.getElementById('fm_menu_menu').style.height = '28px';
}
};
} (); //]]></script>
<!-- End Publishing Scripts of Flash Menu menu -->