日期:2014-05-18  浏览次数:20839 次

菜鸟的一点简单的疑问
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