-8

この問題は、アプリケーションを実行すると発生します。Express プロファイラーは、データベースへの接続が 2 回発生することを示しているため、問題はコードにあります!

コード サンプル 何を送信するかを定義する場所はここにあります。

label_Map.Text = message.Substring(21, 3);
                label_Sys.Text = message.Substring(15, 3);
                label_Dia.Text = message.Substring(18, 3);
                label_Pulse.Text = message.Substring(26, 3);

                //System.IO.File.WriteAllText(@"D:\String.txt", label_Sys.Text);
                //System.IO.File.WriteAllText(@"D:\String.txt", label_Dia.Text);
                //System.IO.File.WriteAllText(@"D:\String.txt", label_Pulse.Text);

                SaveData(

               message.Substring(15, 3),
               message.Substring(18, 3),   
               message.Substring(26, 3)
                    //label_Sys.Text,
                    //label_Dia.Text,
                    //label_Pulse.Text

送信コードはこちら

 private void SaveData(string sys, string dia, string pulse)
    {
        try
        {
            string connectionString = @"Data Source=PlUTO-PC\;Initial Catalog=merisana;Integrated Security=True";
            using (SqlConnection connection = new SqlConnection(connectionString))


            {

               // connection.Open();
                string queryString = "INSERT INTO dbo.merisana_test (sys, dia, pulse) VALUES (@sys, @dia, @pulse)";
                SqlCommand command = new SqlCommand(queryString, connection);
                //command.CommandText = string.Format("INSERT INTO merisana1 (sys, dia, pulse) VALUES ({0}, {1}, {2})", sys, dia, pulse);


                command.Parameters.AddWithValue("@sys", sys);
                command.Parameters.AddWithValue("@dia", dia);
                command.Parameters.AddWithValue("@pulse", pulse);

                command.Connection.Open();
                command.ExecuteNonQuery();
            }
        }
        catch (SqlException ex)
        {
            Console.WriteLine(ex.Message);
        }

    }

完全なコードはこちらhttps://www.dropbox.com/s/4oitl0p3ldcfo79/Form1.cs?v=0swn-

4

2 に答える 2

0

メソッドを 2 回呼び出していることは 100% 確実です。フロント コードを投稿してみてください。コードからは 1 回呼び出しているだけですが、ボタンの動作によって 2 回呼び出される可能性があります。また、データベース クエリ用の関数を作成するときは、void にする代わりに int を返すようにしてください。そうすれば、このことを追跡できるようになります。また、ブレークポイントを設定して、呼び出し回数を確認しますSaveData

これをコメントのように入れたいのですが、できません、ごめんなさい

于 2013-05-20T14:38:42.910 に答える