Listview显示4条记录。 DataGridView显示3条记录?

时间:2017-01-26 13:04:33

标签: c# oracle datagridview

最初我使用Listview来显示oracle结果,但是我最近不得不切换到datagridview来处理比Listview允许的结果更多的结果。自从切换到数据网格以来,我的结果越来越少。我已经逐步完成了代码,并且无法确定问题发生的位置。

这是我显示结果的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;
}

这是我的班级

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;
}

他们应该是4个结果。 DGV仅显示3. Listview显示4。

这只是Oracle SQL Developer中4的截图。我突出显示了没有显示的那个。第1行。

3of4

1 个答案:

答案 0 :(得分:3)

您错过了第一行,因为您在返回阅读器之前正在调用rsMPCS.Read();,这会使“记录指针”前进,因此只会加载后续记录。

删除该行,它将起作用。