在try{}中赋值为何不算? 因为try中,有可能会抛出异常,而导致你给变量赋值的语句没有被执行而你又在try之外未赋值使用了该变量编译器强制认为是错误 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在try上面给myReader赋一个哑值,呵呵你要捕捉myConnection.Open(); myReader = myCommand.ExecuteReader();块的错误.所以你给myReader赋的值是不能通过编译的如果myConnection.Open()就引发异常,myReader当然就是空值了. 说明myReader = myCommand.ExecuteReader();有问题,看看它的值是什么? myReader你要先在外面声明一下比如SqlDataReader myReader;然后才能使用。 这种情况我也碰到过,我也没有很好的解决方法,如果在try 外面先给 myReader 赋值那肯定不行,因为赋值语句 myReader = myCommand.ExecuteReader(); 本身就有可能引发异常,一般只能在外面先定义 SqlDataReader myReader = null;然后在 catch 语句里使用 if( myReader != null ){ myReader.Close();}但是我真的不知道有没有更好的解决方法 myConnection.Open(); // 如果这里出现异常,会只接被系统try 进入 catch 块 myReader = myCommand.ExecuteReader(); 你可以做个试验看看了 建议这样,定义时初始化SqlDataReader myReader = null;就没有编译错误了! 你的try块中发生了异常,myReader没有正确的初始化 {...}是一個局部變數可見範圍比如:for ( int i = 1; i < 10 ; i++ ){ int j = i;}十次循環, 定義十次 j, 程序為什麼不出錯呢? 因為 j 是局部變數 分析一下,楼主的代码执行到myConnection.Open();就抛出异常,下面的代码就没有执行myReader = myCommand.ExecuteReader();解决的办法就是在定义时SqlDataReader myReader = null; 请教高手!!!用户自定义公式的解析、执行问题! C# 开发 Office 控件来显示图表 为何注册DLL不成功 绑定疑惑? 实在要疯了,知道的 帮忙一下啦 服务端已经捕获了异常,为什么还会传到客户端? 会用ImmSetCompositionString()API函数的大哥进来帮忙 如何在windows service中打开exe 文件 c#outlook樣式源碼,希望對對來的有所幫助 急:ASP.net程序部署问题 编码方式寻求解释! 急!!!为什么遍历不到动态添加的控件?
你要捕捉
myConnection.Open();
myReader = myCommand.ExecuteReader();
块的错误.
所以你给myReader赋的值是不能通过编译的
如果myConnection.Open()就引发异常,myReader当然就是空值了.
SqlDataReader myReader;
然后才能使用。
然后在 catch 语句里使用
if( myReader != null ){
myReader.Close();
}但是我真的不知道有没有更好的解决方法
myReader = myCommand.ExecuteReader();
你可以做个试验看看了
SqlDataReader myReader = null;
就没有编译错误了!
是一個局部變數可見範圍比如:for ( int i = 1; i < 10 ; i++ )
{
int j = i;
}十次循環, 定義十次 j, 程序為什麼不出錯呢? 因為 j 是局部變數
楼主的代码执行到
myConnection.Open();
就抛出异常,下面的代码就没有执行
myReader = myCommand.ExecuteReader();解决的办法就是在定义时
SqlDataReader myReader = null;