嗨,朋友们,我有一个控制台应用程序,可以读取access数据库中的数据,更新三个表,我使用一个叫做Automate9.0的软件实现了这个自动化,所以我需要知道exe是否失败,为什么失败,所以我用一些枚举值来跟踪它,我认为这在我的主要方法上造成了错误。
namespace accessmovingtest
{
enum ExitCode : int
{
Success = 0,
SqlError = 1,
CannotFindFileAccessDB = 2,
ConnectionRelatedError = 3
}
class Program
{
public static ExitCode Main(string[] args)
{
ExitCode RetVal;
string accdbConnStr = ConfigurationManager.ConnectionStrings["AccessDBtoSql.Properties.Settings.Company_Master_DataConnectionString"].ToString();
var con = new OdbcConnection(accdbConnStr);
try
{
con.Open();
con.Close();
}
catch(Exception ex)
{
Console.Out.WriteLine(ex.StackTrace);
Console.Out.WriteLine(ex.Message);
Console.Out.WriteLine(ex.TargetSite);
Console.WriteLine("Cannot Establish a connection to the access database");
RetVal = ExitCode.ConnectionRelatedError;
return RetVal;
}
try
{
string accdbConnStrr = ConfigurationManager.ConnectionStrings["AccessDBtoSql.Properties.Settings.Company_Master_DataConnectionString"].ToString();
if (!File.Exists(accdbConnStrr))
{
Console.WriteLine("AccessDb Found");
}
}
catch (FileNotFoundException ex)
{
Console.Out.WriteLine(ex.StackTrace);
Console.Out.WriteLine(ex.Message);
Console.WriteLine("Cannot Find Access Data");
RetVal = ExitCode.CannotFindFileAccessDB;
return RetVal;
}
catch (Exception ex)
{
Console.Out.WriteLine(ex.Message);
}
try
{
accesstosqlitemmaster();
}
catch (Exception ex)
{
Console.Out.WriteLine(ex.StackTrace);
Console.Out.WriteLine(ex.Message);
RetVal = ExitCode.SqlError;
return RetVal;
}
try
{
accesstosqlpiecedimensionmasterdata();
}
catch (Exception ex)
{
Console.Out.WriteLine(ex.StackTrace);
Console.Out.WriteLine(ex.Message);
RetVal = ExitCode.SqlError;
return RetVal;
}
try
{
accesstosqlitemdeslookups();
}
catch (Exception ex)
{
Console.Out.WriteLine(ex.StackTrace);
Console.Out.WriteLine(ex.Message);
RetVal = ExitCode.SqlError;
return RetVal;
}
RetVal = ExitCode.Success;
return RetVal;
}获取主方法旁边的ExitCode上的错误
发布于 2015-06-10 21:08:37
根据C# 5.0语言规范,§3.1,
当执行环境调用指定的方法时,应用程序启动就会发生,该方法被称为应用程序的入口点。此入口点方法总是命名为Main,并且可以具有下列签名之一:
static void Main() {...}static void Main(string[] args) {...}static int Main() {...}static int Main(string[] args) {...}
您正在为您的主要方法返回一个枚举,而不是作为满足规范的枚举的基础的int。
public static int Main(string[] args)
{
ExitCode RetVal;
...
...
RetVal = ExitCode.Success;
return (int)RetVal;https://stackoverflow.com/questions/30767295
复制相似问题