首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不包含适合入口点的静态主方法(但我已正确配置它)

不包含适合入口点的静态主方法(但我已正确配置它)
EN

Stack Overflow用户
提问于 2015-06-10 21:06:12
回答 1查看 335关注 0票数 1

嗨,朋友们,我有一个控制台应用程序,可以读取access数据库中的数据,更新三个表,我使用一个叫做Automate9.0的软件实现了这个自动化,所以我需要知道exe是否失败,为什么失败,所以我用一些枚举值来跟踪它,我认为这在我的主要方法上造成了错误。

代码语言:javascript
复制
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上的错误

EN

回答 1

Stack Overflow用户

发布于 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。

代码语言:javascript
复制
public static int Main(string[] args) 
{
    ExitCode RetVal;
    ...
    ...
    RetVal = ExitCode.Success;
    return (int)RetVal;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30767295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档