C#学习教程:获取异常“并非所有代码路径都返回一个值”我使用MSVisualStudio和phpmyadmin作为SQL客户端。方法:publicstaticMemberupdateMember(stringun,stringpass,stringname,stringsurname,stringmf,stringdob,stringadd,stringphone,stringemail){MySqlConnectionconnection=newMySqlConnection(conn);MySql命令命令;stringquery="UPDATEMEMBERSETName='"+un+"',Surname='"+surname+"',MF='"+mf+"',DOB='"+dob+"',Address='"+add+"',PhoneNo='??"+phone+"',EMail='"+email+"',UserName='"+un+"',Password='"+pass+"'";尝试{连接。打开();cmd=connection.CreateCommand();cmd.CommandText=查询;cmd.ExecuteNonQuery();}赶上(异常){抛出;}finally{if(connection.State==System.Data.ConnectionState.Open){connection.Close();}}}这是正在发生的事情。我将TextBox中的一些值存储为字符串变量形式。然后我将这些字符串变量发送到此方法。我希望此方法获取我的字符串变量并使用我的变量值更新我的SQL表。我收到并非所有代码路径都返回值的错误。你的方法没有返回任何东西,你需要返回成员对象。如果你不需要返回任何东西,只需像这样更改你的方法签名,publicstaticVoidupdateMember(stringun,stringpass,stringname,stringsurname,stringmf,stringdob,stringadd,stringphone,stringemail)@Sajeetharanpost的替代方法是返回ExecuteNonQuery调用connection.Open()的值;cmd=connection.CreateCommand();cmd.CommandText=查询;返回cmd.ExecuteNonQuery();当然你也必须在方法结束时返回一些东西(在finally块之后)。对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新表存在触发器时,返回值包括插入或更新操作影响的行数和触发器影响或影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,返回值也是-1。参考通常,我们不需要在更新/插入或删除时返回像Member这样的对象。我们应该只返回一个布尔标志或返回Nothing。如果返回标志,则应将其设置为cmd.ExecuteNonQuery()>0的结果以及Catch品牌。如果什么都不返回,就修改你的方法为上面希望大家多多关注教程——publicstaticvoidupdateMember(...){....}本文收集自网络,不代表立场.如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
