首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

初学者的一点简单的疑问

2012-02-16 
菜鸟的一点简单的疑问C# codefor(a0a10++a){for(b0b10++b){...if (int.Parse(cmd.ExecuteScalar()

菜鸟的一点简单的疑问

C# code
for(a=0;a<10;++a){    for(b=0;b<10;++b)    {        .        .        .        if (int.Parse(cmd.ExecuteScalar().ToString())==0)//如果影响行数是0,就.....问题是为什么会说输入的字符串格式不正确?        //这里应该用什么,才可以让内循环跳到下一次循环,而不继续执行下去呢?break?        .        .        .        .     }     MessageBox.Show("添加成功", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}    


麻烦解决一下这2个问题...谢谢

[解决办法]
ExcuteScalar返回的是一个于结果集第一行相应数据类型的值,如果没有结果,返回的是NULL或者是DBNull.Value,
可以用空值的判断方式。
因此在这里你应先
object loResult= cmd.ExecuteScalar();
if (loResult ==null || loResult == DBNull.Value) 
{
//do null thing
}else 
{
// do have return data;
}
[解决办法]
cmd.ExecuteScala这个方法
要么返回int型的数据
这个时候你这样
int.Parse(cmd.ExecuteScalar().ToString())是不会有错的
可是当cmd.ExecuteScala返回的是null的时候
你这样就要异常了
你应该这么写
C# code
   int intReturn = 0;   object obj = cmd.ExecuteScala;   if(obj != null && obj != DBNull.Value)   {      intReturn = int.Parse(obj);   }
[解决办法]
1 , cmd.ExecuteScalar()貌似返回结果第一行第一列的值.你自己再看下.
2 ,用 continue ;
下班拉,回家睡觉先了..
[解决办法]
1.先判断是否是空
2.用continue

热点排行