そのため、データベースからデータを取得して出力する関数があります。処理する行が不足することによるエラーが処理されるように、try ブロックに入れられます。
以下は、ロード時に呼び出され (初期出力を作成するため)、後でログ ボックスを更新するために呼び出される関数です。
問題は、関数を再度呼び出すたびに、データが 2 回出力されることです。データのみが try ブロックにあり、ヘッダーには含まれていないため、これは try / catch が問題であることを示しています。
乱雑/ハッキーなコードについてのお詫び:
private void NavigateRecords()
{
da.Fill(ds1, "LogOutput");
textlog4.Text = "Date \t\t Time \t\t Floor\r\n";
try
{
for (int i = 0; i <= 20; i++)
{
DataRow dRow = ds1.Tables["LogOutput"].Rows[i];
for (int i2 = 1; i2 <= 3; i2++)
{
textlog4.Text += dRow.ItemArray.GetValue(i2).ToString() + "\t\t";
}
textlog4.Text += "\r\n";
}
}
catch { textlog4.Text += "----------------------"; }
}
これは、接続の一部を行うコードであり、使用できる可能性があります。
string sql = "SELECT * From tblLog";
da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
NavigateRecords();
初期出力:
Date Time Floor
6/12 18:18:22 1
----------------------
次回呼び出されたときの出力:
Date Time Floor
6/12 18:18:22 1
6/12 18:46:19 2
6/12 18:18:22 1
6/12 18:46:19 2
----------------------