0

みなさん、こんにちは!

かなり大きな問題に遭遇したのはこれで 2 回目ですが、overflow のコミュニティが助けに来てくれることを願っています!

さて、これを開始するには、Microsoft データベース (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 で展開した後、アプリは上記のコードを除いて完全に正常に動作します。データベースに新しいアカウントを追加しようとすると、クラッシュします。

お時間をいただきありがとうございます。この問題のトラブルシューティングにご協力いただければ幸いです。個人的にはかなり難しいと思いますが、まだまだ初心者です… ありがとうございます!

4

1 に答える 1

0

アセンブリを Visual Studio と同じ PC にインストールできると仮定します。

ビルドされたアセンブリと同じ場所に PDB ファイルをコピーします。Visual Studio を使用してプロセスにアタッチします。ブレークポイントを設定します。次に、問題がどこにあり、何が問題であるかについて、より良い考えを持っている必要があります。

同じ PC にインストールできない場合は、リモート デバッグを検討できます ( http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx ) 。

リモート デバッグは非常に難しいので、その代わりに、発生した例外のすべての内容を表示することもできます。エラー メッセージとスタック トレースから、必要な情報がすべて得られるはずです。

于 2012-04-30T16:04:32.873 に答える