C# 使用install shield部署后,应用程序在特定点崩溃

C# 使用install shield部署后,应用程序在特定点崩溃,c#,database,ms-access,installshield,C#,Database,Ms Access,Installshield,向你们大家问好 这是我第二次遇到相当大的问题,希望溢出的comunity在这里救援 好的,首先: 我有一个连接到microsoft数据库(Access 2003)的程序。当我调试它时,一切正常。我可以很好地访问它,并向它添加数据 int val = 0; int ok = 1; do { try { OleDbCommand cmd = new

向你们大家问好

这是我第二次遇到相当大的问题,希望溢出的comunity在这里救援

好的,首先: 我有一个连接到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部署它之后,除了上面的代码外,该应用程序工作得非常好。每当我尝试向数据库添加新帐户时,它都会崩溃


谢谢您的时间,我希望您能帮助我解决这个问题。我个人认为这很难,但我还是初学者。谢谢大家!

假设您可以在与Visual Studio相同的PC上安装程序集:

将PDB文件复制到与生成部件相同的位置。使用Visual Studio附加到进程。设置一个断点。那么你应该更好地了解问题出在哪里,出在什么地方

如果不能安装在同一台PC上,则可以考虑远程调试()


远程调试相当棘手,因此您还可以显示引发的任何异常的所有内容。错误消息和堆栈跟踪可能会为您提供所需的所有信息。

如果整个过程都包含在一个catch语句中,而该语句只增加了一个计数器,那么肯定会有错误消息和堆栈跟踪。这段代码的具体目的是什么?请使用自动编号字段,而不是try…catch。没有错误消息,没有。至于我想实现什么:我想向我部署的mdb文件添加一个新帐户,并警告您的代码容易受到sql注入攻击!