在控制台中,我的程序:
Class Program
{
  public SqlConnection sqlconn; 
  public SqlCommand sqlcmd = new SqlCommand();
  string strconn;
  int numcount;  static void Main(string[] args)
  {
     Program rm = new Program();
     rm.ConnectSQL();
  }  public void ConnectSQL()
  {
    strconn     = "server=".\\MYSQLDATABASE;database="TESTDataBase;uid=sa;password=1234";   sqlconn = new SqlConnection(strconn);
   sqlconn.open();   sqlcmd.Connection = sqlconn;
   sqcmd.CommandText = "Select * from Student_Test";
   sqcmd.CommandType = CommandType.Text;
   sqcmd.ExecuteNonQuery();
  }
}
错误:process is terminated due to stackoverflowException我打断点看了下是这样子:它总是从main函数中:Program rm = new Program();跳到上面public SqlConnection sqlconn。中,一直无限循环,怎么办????

解决方案 »

  1.   

    不行啊,如果直接用的话根本发现不了ConnectSQL()这个函数啊。我先实例化了Program才出现了ConnectSQL(),为什么不能直接调用呢?
      

  2.   

    方法改为静态的就可以了
    public static void ConnectSQL()
      

  3.   

    加static 不加为实例化方法 Main函数在你的Program类里 如果你new的话 就会进入无限循环
      

  4.   

    Main函数是程序的入口点,程序中只要加上这个,当类实例化的时候,就会自动执行这个方法
    Program rm = new Program();就会自动执行一次Main函数,这句放到Main函数中,就会不停的创建Program的实例,每次都执行一次Main函数,当然就不停的循环了
      

  5.   

    有没有发现所有的winform程序,都有一个Program.cs,里面有一个Main函数,这个就是用来启动程序的。
      

  6.   

    Class Program
     {
       private static SqlConnection sqlconn; 
       private static SqlCommand sqlcmd = new SqlCommand();
       private static string strconn;
       int numcount;
     
      static void Main(string[] args)
       {
          ConnectSQL();
       }
     
      public static void ConnectSQL()
       {
         strconn     = "server=".\\MYSQLDATABASE;database="TESTDataBase;uid=sa;password=1234";
     
       sqlconn = new SqlConnection(strconn);
        sqlconn.open();
     
       sqlcmd.Connection = sqlconn;
        sqcmd.CommandText = "Select * from Student_Test";
        sqcmd.CommandType = CommandType.Text;
        sqcmd.ExecuteNonQuery();
       }
     }