0

と を使用C#Visual StudioていMySqlます。コードに独自のメソッドを持つボタンがあります。それが終わったら、から別のメソッドを呼び出しますClasstimeout私はすでにコマンドと接続を編集しています。このメソッドは、テーブルに日付を挿入します。この同じテーブルにもう一度日付を挿入すると、最後の ID が読み取られ、"id"+1 が増加します。最初に日付が 20.000 を超え、2 回目は 40.000++ になります。問題ありますか?

            public void PendenciaAssociado()
                {

            #region LeituraDosDados
            MySqlConnection Con = new MySqlConnection(ConfigurationManager.ConnectionStrings["strConexaoDestino"].ConnectionString);
            MySqlCommand Cmd = new MySqlCommand();
            Cmd.CommandTimeout = 1000;
            Cmd.CommandType = CommandType.Text;
            Cmd.Connection = Con;           
            string sql = "SELECT matricula,dt_nascimento,cpf,rg,celular,mail,profissao,dt_insercao,usr_insercao from Associados";
            Cmd.CommandText = sql;           
            Con.Open();
            MySqlDataReader dr = Cmd.ExecuteReader();            
            DataTable dt = new DataTable();
            dt.Load(dr);
            Con.Close();
            Con.Dispose();

            #endregion

            #region Variaveis
            int matricula, profissao;
            DateTime dt_nascimento, dt_insercao;
            string cpf, rg, celular, mail, usr_insercao, pendencia;
            #endregion


            foreach (DataRow row in dt.Rows)
            {

                matricula = Convert.ToInt32(row["matricula"]);
                dt_nascimento = Convert.ToDateTime(row["dt_nascimento"]);
                cpf = row["cpf"].ToString();
                rg = row["rg"].ToString();
                celular = row["celular"].ToString();
                mail = row["mail"].ToString();
                profissao = Convert.ToInt32(row["profissao"]);
                dt_insercao = Convert.ToDateTime(row["dt_insercao"]);
                usr_insercao = row["usr_insercao"].ToString();

                if (profissao == 0)
                {
                    pendencia = "Favor Verificar a Profissao do Associado";
                    InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia);
                }
                if (dt_nascimento.ToString() == "01/01/1980 00:00:00")
                {
                    pendencia = "Favor Verificar a Data de Nascimento do Associado";
                    InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia);
                }
                if (cpf == "00000000000")
                {
                    pendencia = "Favor Verificar o CPF do Associado";
                    InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia);
                }
                if (rg == "0000000000")
                {
                    pendencia = "Favor Verificar o RG do Associado";
                    InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia);
                }
                if (celular == "")
                {
                    pendencia = "Favor Verificar o Celular do Associado";
                    InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia);
                }
                if (mail == "")
                {
                    pendencia = "Favor Verificar o Email do Associado";
                    InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia);
                }
            }
        }

        int contador = 0, aux, aux2;
        public void InserePendencias(int matricula, DateTime data_nasci, string cpf, string rg, string celular, string email, int profissao, DateTime data_insercao, string usuario, string pendencia)
        {

            MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["strConexaoDestino"].ConnectionString);
            MySqlCommand cmd = new MySqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            string seleciona = "SELECT MAX(codigo) as codigo FROM pendencias";
            cmd.CommandText = seleciona;
            con.Open();
            MySqlDataReader dr = cmd.ExecuteReader();
            con.Close();
            if (contador == 0)
            {
                contador++;
                aux2 = contador;
            }
            else if (contador != 0)
            {
                contador++;
                aux = contador;
            }



            cmd.Connection = con;                
            string query = "INSERT INTO  pendencias (codigo,matricula,pendencia,dt_insercao,usr_insercao) VALUES(" +
                           "@codigo,@matricula,@pendencia,@dt_insercao,@usr_insercao)";
            cmd.CommandText = query;
            cmd.Connection = con;
            cmd.Parameters.Add(new MySqlParameter("@codigo", MySqlDbType.Int32)).Value = contador;
            cmd.Parameters.Add(new MySqlParameter("@matricula", MySqlDbType.Int32)).Value = matricula;
            cmd.Parameters.Add(new MySqlParameter("@pendencia", MySqlDbType.VarChar)).Value = pendencia;
            cmd.Parameters.Add(new MySqlParameter("@dt_insercao", MySqlDbType.DateTime)).Value = data_nasci;
            cmd.Parameters.Add(new MySqlParameter("@usr_insercao", MySqlDbType.VarChar)).Value = usuario;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
4

1 に答える 1

0

OK - 回答として投稿していませんが、コメントするには言いたいことが多すぎたので..回答が得られたら編集できます..だから、これは長いコメントです!

だから私が最初に目にするのは:

       if (profissao == 0) 
        { 
            pendencia = "Favor Verificar a Profissao do Associado"; 
            InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia); 
        } 
        if (dt_nascimento.ToString() == "01/01/1980 00:00:00") 
        { 
            pendencia = "Favor Verificar a Data de Nascimento do Associado"; 
            InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia); 
        } 
        if (cpf == "00000000000") 
        { 
            pendencia = "Favor Verificar o CPF do Associado"; 
            InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia); 
        } 
        if (rg == "0000000000") 
        { 
            pendencia = "Favor Verificar o RG do Associado"; 
            InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia); 
        } 
        if (celular == "") 
        { 
            pendencia = "Favor Verificar o Celular do Associado"; 
            InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia); 
        } 
        if (mail == "") 
        { 
            pendencia = "Favor Verificar o Email do Associado"; 
            InserePendencias(matricula, dt_nascimento, cpf, rg, celular, mail, profissao, dt_insercao, usr_insercao, pendencia); 
        } 

現実には、ペンデシアを値に設定し、まったく同じ呼び出しを呼び出したい..コードの簡略化を実際に使用できます。

実行するたびに、レコードの数が 2 倍になります..最初は 10 でしたが、最後には 20 になりました..次は 20 になり、最後は 40 になりました...これですか?あなたが本当に欲しかったものは何ですか?

最初の 10 個すべてがこの関数を実行する必要がある場合、それらを更新することで、2 回目に含まれないようにすることはできません。したがって、追加された 10 行のみを評価するのではなく、20 行すべてを評価して、最初のラウンドと同様に、10 行の 2 番目のセットを再度生成し、以前に追加された 10 から新しい値を取得します。 .. 一種の無限ループ型の動作ですが、値を操作するだけでなく、db に挿入します。

于 2012-09-03T12:58:12.050 に答える