元々私はOracleの結果を表示するためにリストビューを使用していましたが、私は最近、リストビューが許すよりも少しだけ結果を扱うためにdatagridviewに切り替えなければなりませんでした。しかし、データグリッドに切り替えると、結果は少なくなります。私はコードをステップ実行していて、問題の発生場所を特定できませんでした。リストビューに4レコードが表示されます。 DataGridViewは3レコードを表示しますか?
これはfrmMainで結果を表示します。
private void button1_Click(object sender, EventArgs e)
{
dtpicker.Format = DateTimePickerFormat.Custom;
dtpicker.CustomFormat = "dd-MMM-yy";
string VoidDate = dtpicker.Text.Trim().ToUpper();
DataTable resultnew = new DataTable();
resultnew.Load(oracleConnection.GetVoidDGV(VoidDate));
if (resultnew != null)
{
dataGridView1.DataSource = DBNull.Value;
dataGridView1.Columns.Clear();
dataGridView1.DataSource = resultnew;
SetupDGV();
}
else
{
MessageBox.Show("No History Found");
}
}
private void SetupDGV()
{
dataGridView1.Columns[0].HeaderText = "Heat Run";
dataGridView1.Columns[1].HeaderText = "Lot Number";
dataGridView1.Columns[2].HeaderText = "Serial Number";
dataGridView1.Columns[3].HeaderText = "Date";
dataGridView1.Columns[4].HeaderText = "Void Location";
dataGridView1.Columns[5].HeaderText = "Void Length";
dataGridView1.Columns[6].HeaderText = "Employee ID";
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
そして、これが4件の結果彼らでなければなりません
public OleDbDataReader GetVoidDGV(string VoidDate)
{
var conn = new OleDbConnection(oracleConnectionString);
conn.Open();
string query = "SELECT HEAT_RUN_NO, LOT_NO, SERIAL_NO, TO_CHAR(DATE_TIME, 'DD-MON-YYYY') as DATE_NO_TIME, VOID_LOC, cast(VOID_LENGTH as int) as VOID_LENGTH, EMPL_ID ";
query += "FROM MPCS.BRAZE_VOIDS ";
query += "WHERE TRUNC(DATE_TIME) = TO_DATE(?, 'dd-MON-yy')";
var cmd = new OleDbCommand(query, conn);
cmd.Parameters.AddWithValue("DATE_TIME", VoidDate);
rsMPCS = cmd.ExecuteReader();
rsMPCS.Read();
return rsMPCS;
}
私のクラスです。 DGVは3のみを表示します。リストビューには4が表示されます。
これは、Oracle SQL Developerの4つのスクリーンショットです。表示されていないものを強調表示しました。
SetupDGV()コードを共有できますか? –
@IkramTurgunbaev今すぐ追加しました。 – Lee