程序不能编译通过,提示Not all code path return a value.
(疑问:为啥以下程序不能编译通过,在第一行的ValidateUser下面有红色曲线,提示Not all code path return a value. 可是我明明每条code path都return了啊。)
public string ValidateUser(params string[] UserInfo)
{
if( UserInfo.Length < 2 ) return "Error: Need More Parameters.";
string strProvider = @"Data Source=(local)\SQLEXPRESS;Database=BD_Ningbo; Integrated Security = SSPI";
string UserName = UserInfo[0];
string Password = UserInfo[1];
OleDbConnection MyConn = new OleDbConnection(strProvider);
string strSelect = "select * from SX_USER where userdm='" + UserName + "'";
OleDbCommand MyComm = new OleDbCommand(strSelect, MyConn);
MyComm.Connection.Open();
OleDbDataReader MyReader = MyComm.ExecuteReader();
if( MyReader.Read() )
{
if( (string)MyReader["userdm"] != Password )
{
return "Password Invalid!";
}
if( (int)MyReader["Step"] < 1 )
{
try
{
int ValidateCode = Int32.Parse(UserInfo[2]);
if( (int)MyReader["ValidateCode"] != ValidateCode )
{
return "Error: Validate Code Wrong.";
}
}
catch( Exception e )
{
return "Error: This is your first time to login, please input the validate code.";
}
_Step = ( (int)MyReader["Step"] + 1 ).ToString();
_Email = MyReader["Email"].ToString();
_Age = MyReader["Age"].ToString();
_HomePage = MyReader["HomePage"].ToString();
MyComm.Connection.Close();
string strUpdate = "update SX_USER set Step=Step+1 Where userdm ='" + UserName + "'";
OleDbCommand UpdateComm = new OleDbCommand(strUpdate, MyConn);
UpdateComm.Connection.Open();
UpdateComm.ExecuteNonQuery();
UpdateComm.Connection.Close();
return "Succeed";
}
else
{
return "Error: Invalid UserName.";
}
}
}