各位大侠。帮我看看这程序出现了什么问题。。?

zheng_unhappy 2011-04-17 05:43:33
前台界面代码:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ReadNews.aspx.cs" Inherits="ReadNews" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script language="javascript" type="text/javascript">
<!--

function TABLE1_onclick() {

}

// -->
</script>
<table border="0" cellpadding="0" cellspacing="0" style="border-right: #cccccc 1px solid;
border-top: #cccccc 1px solid; border-left: #cccccc 1px solid; width: 95%;
border-bottom: #cccccc 1px solid" id="TABLE1" language="javascript" onclick="return TABLE1_onclick()" align=center>
<tr>
<td style="width: 100%; border-bottom: #00ff33 1px solid; height: 14px; background-color: #cccccc;" align=left>
您的位置:<asp:Label ID="lbl_class" runat="server"></asp:Label>->系部介绍
</td>
</tr>
<tr>
<td style="width: 100%; height:15px">
<table border="0" cellpadding="0" cellspacing="0" style="width: 60%" align=center>
<tr>
<td style="border-bottom: #ffcc00 1px solid; height: 17px" align=center>
<asp:Label ID="lbl_title" runat="server"></asp:Label>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width: 100%; height:14px" align=center>
<asp:Label ID="lbl_info" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="width: 100px; height: 16px;">
</td>
</tr>
<tr>
<td style="width: 100%; height:14px" align=left>
       
<asp:Label ID="lbl_content" runat="server"></asp:Label>
</td>
</tr>
</table>
</asp:Content>




后台代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class ReadNews : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());

string setting = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServives"]);

SqlConnection conn = new SqlConnection(setting);

conn.Open();
string sql = "select A.Title,A.Content,A.Time,A.Author,A.Readcishu, B.pastemName from Body A ,Pastem B Where B.pastemID = A.pastemID And A.ID =" + newsid;

SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
lbl_class.Text = dr["pastemName"].ToString();
lbl_content.Text = dr["Content"].ToString();
lbl_title.Text = dr["Title"].ToString();
lbl_info.Text = "作者:" + dr["Author"].ToString() + " 时间:" + dr["Time"].ToString() + "阅读:" + dr["Readcishu"].ToString() + "次";
}
int m = Convert.ToInt32(dr["Readcishu"].ToString()) + 1;
conn.Close();
UpdataPo(newsid, m);
}
public void UpdataPo(int id, int m)
{
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);

SqlConnection myconn = new SqlConnection(settings);

myconn.Open();
string sql = "Update Body Set ReadCishu=" + m + " Where ID = " + id;

SqlCommand mycmd = new SqlCommand(sql, myconn);
mycmd.ExecuteNonQuery();
}
}

错误信息:
“/WebSite1”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 15: protected void Page_Load(object sender, EventArgs e)
行 16: {
行 17: int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());
行 18:
行 19: string setting = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServives"]);


源文件: d:\Documents\Visual Studio 2005\WebSites\WebSite1\ReadNews.aspx.cs 行: 17

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
ReadNews.Page_Load(Object sender, EventArgs e) in d:\Documents\Visual Studio 2005\WebSites\WebSite1\ReadNews.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +73
System.Web.UI.Control.LoadRecursive() +52
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184



...全文
112 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zheng_unhappy 2011-04-18
  • 打赏
  • 举报
回复
没有..不会默认为0,因为在地址栏里我有参数.
Lost_c 2011-04-17
  • 打赏
  • 举报
回复
纠正,目前开发用的是4.0 4.0以前的没太在意。不知道会不会默认为0!
Lost_c 2011-04-17
  • 打赏
  • 举报
回复
从堆栈信息看,应该不是参数问题。 如果参数为空默认得到应该是0;所以不会报错。 应该是没得到连接字符串的原因。你打个断点看看呢?
Lost_c 2011-04-17
  • 打赏
  • 举报
回复
int newsid = Convert.ToInt32(Request.QueryString["Id"] == null ? "1" : Request.QueryString["id"]);
zheng_unhappy 2011-04-17
  • 打赏
  • 举报
回复
这样也不行。
上面提示
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0173: 无法确定条件表达式的类型,因为“int”和“string”之间没有隐式转换

源错误:



行 15: protected void Page_Load(object sender, EventArgs e)
行 16: {
行 17: int newsid = Convert.ToInt32(Request.QueryString["id"] == null ? 1 : Request.QueryString["id"]);
行 18:
行 19: string setting = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServives"]);


源文件: d:\Documents\Visual Studio 2005\WebSites\WebSite1\ReadNews.aspx.cs 行: 17

子夜__ 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zheng_unhappy 的回复:]

C# code是啥?应该在哪改?
[/Quote]
把您的代码int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());


int newsid = Convert.ToInt32(Request.QueryString["Id"] == null ? 1 : Request.QueryString["id"]);
替换掉

顺便百度一下 三元运算符
zheng_unhappy 2011-04-17
  • 打赏
  • 举报
回复
C# code是啥?应该在哪改?
zheng_unhappy 2011-04-17
  • 打赏
  • 举报
回复
因为我是新手。所以麻烦各位大侠说清楚点!
子夜__ 2011-04-17
  • 打赏
  • 举报
回复

int newsid = Convert.ToInt32(Request.QueryString["Id"] == null ? 1 : Request.QueryString["id"]);
huiyuan659 2011-04-17
  • 打赏
  • 举报
回复
Request.QueryString["id"]是通过地址栏的参数获取值,如果你的地址栏里没有参数,就会取不到值,就会报未将对象引用设置到对象的实例错误。

改成
if(Request.QueryString["id"]!=null)
{
int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());
}
Teng_s2000 2011-04-17
  • 打赏
  • 举报
回复
*****.aspx?newsid=100
关注开源四轴项目也有近一年了,前期都以潜水为主,业余时间主要是在啃那些控制和导航的理论书籍。最近开始动手做了,打算先从电调开始,发现真要做起来问题还真是一大堆。所幸有论坛这么好一个交流平台,很多问题其实前人都已经碰到过了,参考前人的经验,让我少走了很多弯路。在此要感谢论坛各位前辈大侠和阿莫的ourdev。:-) 前人种树、后人乘凉,既然受惠于前人,怎好意思独享,当然也应该助一下新入门的开发者。由于四轴分论坛的帖子数量已经很多了,光搜一下无刷电机和电调也有近百来篇帖子,次序和深浅程度不一,想要看完并完全理解这些帖子对新人来说不啻是一个艰巨的任务。而且很多帖子的发帖时间都比较久远了,回帖提问也未必能得到原作者的回答。我写这篇文档的目的,就在于做一个整理和汇编,把很多零散的、前人已解答过的问题分门别类整理出来,并添加一些自己制作电调时的经验和总结。 在参考一些关于无刷电机驱动的书籍和帖子的时候,发现高手或是大师好像都比较惜字如金,一些问题往往点到为止或者一笔带过,有些看似简单的问题会让像我这样的电调DIYer困惑很久。所以在本文行文时,笔者力图把问题以大白话的形式说明白,如果各位有觉得哪里看得不明不白的,可以回帖提出(时限一个月,呵呵),我会修改文档以试图将问题讲清楚。如果有些问题我无法回答,我会老老实实跟你说我也没搞清楚,还要请高手来解惑啊。如果发现我哪些内容讲错了,也请不吝指正。 最后还将附上德国MK项目电调代码(V0.41版本)的全代码分析,这件事可能以前没人做过吧,我就来揭晓一下答案好了^ ^。同时我也参照他的程序,自己写了一个可供mega8和mega32使用的电调驱动程序,将一些结构作了优化,所有变量名都从德语改成了英语,添加了比较完备的中文注释,通讯规约也做了一些整理和改动,并附带上位机调试程序。也希望大家能多多把自己的一些心得体会和经验拿出来,建立好一个基础的知识平台后,可以让后来的开发者少走很多初期摸索的弯路,而专心于攻克我们未能解决的难点。衷心希望后来的开发者能站在我们的肩膀上,走得比我们更远。 timegate
APK软件汉化教程 (转载请注明来自藕粉网www.Allphone.com.cn的Smwenzi,谢谢) 随着Android手机种类的不断丰富,各种应用软件也开始遍地开花,Android用起来也越来越爽了……不过有很多软件都是老外编的,虽然英文界面也能用,但是毕竟不如咱们中文看着舒服,特别是一些功能相对比较复杂的软件,中文界面还是很有必要的。因此,本人综合网上多位前辈大侠的教程,加上自己的一点心得,对如何汉化APK软件,进行简要说明。由于我也是个新手,很多地方也许会不完善甚至存在错误,请各位兄弟不吝赐教。 一、概述 目前,网上常用的APK汉化方法有三种: 一是使用Hex Worksho,这种方法操作繁琐、费时费力,而且经常出现搜不到想要修改的字符的情况; 二是使用汉化浪子大侠的Android ResEdit(目前最新版本AndroidResEdit v1.5),这个软件使用简单直观,但是对不在资源文件中的词条无能为力,只能用于简单的汉化; 第三种就是我在这里要向大家推荐的APKTOOL,他的原理是把APK进行反编译,生成程序的源代码和图片、XML配置、语言资源等文件。我们秩序对有关图片和语言资源等文件进行修改,再编译打包成APK并签名,就可以得到汉化版的APK软件了。 二、搭建汉化环境 由于APKTOOL工具是用Java编制的,因此需要电脑中安装了JRE或者JDK(JAVA工具,用JRE即可)。 下载地址:………… 接下来就是我们要用到的关键工具——APKTOOL。这个是我在其他论坛找到的leasea大侠集成的一个批处理,可以省去自己输入指令的麻烦,实现解包、打包、签名自动处理,我自己也作了一点小小的修改,在此谢谢leasea大侠。 下载地址:………… 还有一个辅助工具Notepad++,这是一个功能强大的文本编辑软件,可以在指定文件夹中搜索字符串,对于在不在资源文件中的词条汉化,用这个可以极大减少工作量。 下载地址:………… 安装的步骤很简单了,下载上面三个文件,安装JRE和Notepad++,将APKTool压缩包解压到任意位置,就OK了。 另外,为了调试方便,推荐安装Android相应版本的SDK(或OMS),并建立虚拟机运行环境。当然用手机调试也可以,但是没那么方便而且容易发生不可预料的问题。关于虚拟机环境搭建请参考其他资料。 三、解包软件 将你需要汉化的APK文件,放到APKTOOL文件夹下面,双击运行“解包软件.BAT”,批处理会自动识别APK文件并开始解包,在这里我用FlipSilent(一个翻转静音工具)作为示例。 解包出来的资源存储在“汉化中的资源”文件夹中,原始的APK文件则被备份到“原始软件备份”文件夹中。 打开解包的资源文件,里面有两个文件夹:Res存储的各种资源文件;Smail:存储的是反编译的程序代码。至此解包操作完成。 四、初步汉化 汉化的第一步,是汉化res文件夹里面的程序界面资源。一般来说,这个文件夹里面会包含以下文件夹: Drawable:程序调用的图标以及各种图片; layout-land:竖版界面xml描述文件; layout-port:横版界面xml描述文件; menu:菜单布局xml描述文件; values:字符串资源定义,我们要汉化的绝大部分工作就在这里面; xml:其他不再详细分类的布局xml描述文件。 根据软件的不同,文件夹可能会多些也可能会少些,具体内容大家打开一看就大概能知道是什么了。这里FlipSilent软件相对比较简单,所以只有三个文件夹,如下图: 在values文件夹下的文件: 一般来说,汉化需要处理是arrays.xml和strings.xml这两个文件。如何判断哪些是需要我们翻译的词条呢?有三种方法,综合起来一般就差不离了: 第一个当然是在使用软件中界面出现的词条,这个可以用手机仔细查看,当然有一部分可能很少出现的提示会有遗漏; 第二个凡是一对tag里面的,一般情况下就是需要翻译的英文字符串。格式一般为:******* ,或**** 第三个是以大写字母开头的词条,一般都是需要汉化的。 注意:这三条要综合起来运用,特别是在比较大型的软件中,情况会比较复杂,需要自己不断摸索。 在解包FlipSilent软件中,没有arrays.xml文件,因此我们的对象就是strings.xml了。用记事本打开strings.xml文件,内容如下: 对比一下FlipSilent软件运行界面,一切都就都明白了…… 接下来的工作,就是考验各位的英语水准了…… 上面就是我翻译的结果了,水平不行,大家见笑…… 修改完毕了,保存退出。 五、打包签名 改完了strings.xml,下面就是打包看看效果了……有了leasea大侠的批处理,就很简单了,什么都不用管,双击运行“打包签名.BAT”就可以了。 如果出现的是上面的信息,那么恭喜你,过关了…… 如果有多余的信息,并提示你找不到“已汉化签名的软件”文件夹,那么说明你修改不该修改的词条,好好找找吧,这个就没办法一概而论了。 在弹出的资源管理器窗口里面,你就可以看到汉化后的软件了。现在试验一下吧。 注意:试验之前,要删除安装的原版软件,否则会安装失败的。 基本就搞定了……等等,怎么那个About按钮还是英文啊,对于追求完美的人,这是绝对不用需的。 可是在语言资源文件里面,就是找不到这个词啊。接着就是下一节了…… 六、深度汉化 先解释一下为什么还有一些词条没有汉化的原因。 一般而言,一个编写规范的Android程序,会把所有字符串资源都分离出来,放在values的strings.xml文件中,values目录中存放的是默认语言字符串资源(一般为英文)。APK程序在处理字符串资源时会先判断语言环境,然后自己调用对应语言的。可是,有的程序员会自觉不自觉地,将部分文字内容写到程序代码里面,因此就出现了在资源文件中找不到的词条了。 对这部分词条的修改,相对就比较复杂一些了,幸好我们有神兵利器:Notepad++。 打开Notepad++软件,选择菜单中的“搜索”—“在文件中查找”,查找目标中输入要查找的字符串,这里为“About”,在目录中,选择解包后的“汉化中的资源”文件夹中的“smali”文件夹,一定要勾选“包含子目录”选项。 选定后,点击“全部查找”按钮,NotePad++会将这个文件夹中所有包含“About”字符的地方给你列出来。 这里一共找到了6个,很明显前面的几个开头字符都是小写,不符合我们的要求,那么必然就是最后一个了,双击最后一行直接定位,修改为“关于软件”,然后保存…… 注意: 1.进行这部分修改的时候,不要在修改内容里面包含空格,否则极有可能在重新编译打包的时候出错; 2.在示例中需要修改的词条很简单,也很好找,但是实际操作中,可能会比这个复杂很多,尤其是可能搜索出很多一样的结果,究竟哪些能改,在这里的只有一个大致的判断方法,那就是只能修改const-string v* “***”  引号中的字符。 3.在同时出现多个重复的关键字时,请谨慎修改,有些可能是定义函数的, 具体参考http://code.google.com/p/smali/source/browse/#svn/dalvik-docs/opcodes 4.保存时的文本编码要设置为ANSI格式,具体操作在菜单栏的“格式”中。打包前确定classes 文件夹下没有其他无用文件,如notepad++的备份文件(为避免这种情况,请确认在菜单栏“设置”—“首选项”—“备份与自动完成”中,禁用自动备份功能)。 现在再打包签名,安装试验看看效果。 已经改过了吧,现在就可以收工了…… 七、修改图标 软件的内容汉化完成了,应该说就搞定了,不过,软件的图标往往会与手机的主题风格不一致,不够美观,甚至有的软件作者主要精力都在编程序上面,用的就是标准的小绿人,看不出来软件的功能。因此,对图标的美化也是有必要的。接下来我们对图标开刀。 还是在解包后的汉化资源中,这次我们的目标是res\Drawable下面的图片。原始图片是这样的: 我们要修改的是icon.png,注意左边“详细信息”里面的内容,显示该图像尺寸是48 x 48像素。剩下的就是用自己喜欢的图像替换它就可以了。我这里用的图像是藕粉网风格的,顺手把那个通知图标也换了,这个是24 x 24像素的,呵呵: 换完的效果就不单独上图了。 注意:编辑png图像,推荐使用Photoshop软件,兼容性好。这里我给大家附上一个藕粉风格图标的模板,希望大家能忙推广藕粉网。 图标模板下载地址:………… 八、其他 (一)一些软件中界面没有使用文字,而是调用的图片(这在游戏软件中更多见),对于此类界面的汉化,请参考替换图标,直接用同尺寸的图片替换就可以了。 (二)有的软件本身支持多语种,这样可能会在res文件夹下会出现多个以values开头的文件夹,对于这类软件,汉化也有两种做法: 一种是按照上面的方法,直接把默认语言文件夹values里面的资源都汉化掉,干脆利落,不过这样到了英文系统里面也显示汉字。 第二种方法,就在res目录里面建立对应的语言资源文件夹(简体中文资源的目录名是values-zh-rCN,繁体中文是values-zh-rTW),将英文资源values里面的arrays.xml和strings.xml复制到新目录里面进行汉化,让Android系统自己识别语种调用,从而达到在对应的语言环境中显示对应的界面。不过,如果软件的作者将一些词条放到了代码里面的话,这样汉化也就没什么必要了,因为代码中的词条是不会自己更换的,呵呵。 能把加密的XML文档转化为可见可编辑的形式。 打开google code发现Apktool更新了,居然支持win了。。。。 那本文就是一篇介绍在windows环境下使用Apktool的笔记。 安装 1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧 2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip 3.解压apktool.jar到 C:\Windows 解压apktool-install-windows.zip到任意文件夹(例如E盘根目录) 4.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些助的话就成功了。Apktool 命令 apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC apktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk 然后我们反编译一枚软件玩玩… AutoMemoryManager的免费版底部有一条广告,去掉它吧。 把com.lim.android.automemman.apk放到同文件夹(我的就是E盘根目录) Win+R 运行CMD E:<回车> E:\>apktool d com.lim.android.automemman.apk AMM <回车> I: Baksmaling… I: Decoding resource table… I: Decoding resources… I: Copying assets and libs… 现在文件被decode到E:\AMM了,打开E:\AMM\res\layout\main.xml看,所有都可见了吧~ 编辑第59行 改为 然后CMD输入 E:\>apktool b AMM I: Checking whether sources has changed… I: Smaling… I: Checking whether resources has changed… I: Building resources… I: Building apk file… 用Auto-sign签名E:\AMM\dist\out.apk 安装 这样广告就不见了 再看,嘿嘿~很帅吧… 这其实就是改了AndroidManifest.xml里的ADmob广告ID罢了 Settings.Secure.setLocationProviderEnabled(getContentResolver(),LocationManager.NETWORK_PROVIDER, mNetwork.isChecked()); 根据mNetwork这个控件是否选中决定是否打开基站定位,mNetwork就是界面那个选择框

62,254

社区成员

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

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

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

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