2012-04-30 258 views
0

向各位致以問候!使用安裝屏蔽後部署應用程序崩潰

這是我第二次遇到相當大的問題,並希望溢出的社區在這裏救援!

好吧,就這樣開始吧: 我有這個程序可以連接到微軟數據庫(Access 2003)。當我調試它時,一切正常。我可以很好地訪問它並向其添加數據。

 int val = 0; 
     int ok = 1; 
     do 
     { 



      try 
      { 

       OleDbCommand cmd = new OleDbCommand(); 
       { 
        cmd.Connection = Variables.con; 
        cmd.CommandText = "Select * from users"; 
        using (OleDbDataReader dr = cmd.ExecuteReader()) 
        { 

         while (dr.Read()) 
         { 
          if (dr["us_name"].ToString() == usnT.Text) 
          { 
           ok = 0; 
           break; 
          } 
         } 

        } 
       } 
       if (ok == 0) 
       { 
        MessageBox.Show("Username already taken"); 
        break; 
       } 
       if (usnT.Text != "" && pswdT.Text != "" && ok == 1) 
       { 

        pswdT.Text = pswdT.Text.ToLower(); 
        string vsql = string.Format("insert into users values({0},'{1}',{2},'{3}','{4}')", id, usnT.Text, val, val, pswdT.Text); 
        OleDbCommand vcom = new OleDbCommand(vsql, Variables.con); 
        vcom.ExecuteNonQuery(); 
        MessageBox.Show("success"); 
        vcom.Dispose(); 
       } 
       break; 

      } 
      catch 
      { 
       id++; 
      } 
     } while (true); 

但是,在我使用InstallShield進行部署之後,除了上面的代碼外,該應用程序工作得非常好。每當我嘗試將新帳戶添加到數據庫時,它都會崩潰。

謝謝你的時間,我希望你能幫我解決這個問題。我個人認爲這很艱難,但我仍然是初學者......謝謝!

+0

任何錯誤信息? – BNL

+1

懷疑會有什麼,因爲整個事情被包裝在一個只增加一個計數器的catch語句中? – KingCronus

+0

你到底想用這段代碼實現什麼功能? – KingCronus

回答

0

假設你可以在同一臺PC的Visual Studio上安裝組件:

複製PDB文件到同一位置,因爲內置組件。使用Visual Studio附加到進程。設置一箇中斷點。那麼你應該有一個更好的想法,問題是在哪裏和什麼。

如果你不能在同一臺PC上安裝,那麼你可以考慮遠程調試(http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx

遠程調試是相當棘手,所以不是,你也可以顯示對提出的任何異常的全部內容。錯誤消息和堆棧跟蹤可能會爲您提供所需的所有信息。