【问题标题】:DataGridView not showing the informationDataGridView 不显示信息
【发布时间】:2021-02-15 12:07:25
【问题描述】:

我正在尝试让我的 datagridviewDocumentos 显示 SP 信息,并且它只是在我的 windowsForm 中发布空白。 首先是我的 DataAccess 类。

    public DataTable Sp_Teste(int JobID, int BatchID)
    {

        try
        {
            ManageConnectionStateIbml1();
            SqlCommand command = new SqlCommand("SP_SELECT_DOCS_WHERE_JOBID_STATUS", 
            connectionIBML1);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@JobID", JobID);
            command.Parameters.AddWithValue("@BatchID", BatchID);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            return ds.Tables[0];


        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            ManageConnectionStateIbml1();
            connectionIBML1.Close();
           
        }
 
    }

然后是我的form.cs,请忽略前两个区域,即我的另外两个数据网格

    public void Update(DataGridViewCellEventArgs e)
    {
        #region DatagridViewOCR
        dataGridViewOCR.ColumnCount = 4;
        DataGridViewColumn columnBatchID = dataGridViewOCR.Columns[0];
        columnBatchID.Width = 130;
        DataGridViewColumn columnDOCID = dataGridViewOCR.Columns[1];
        columnDOCID.Width = 130;
        DataGridViewColumn columnOCR_DATA = dataGridViewOCR.Columns[2];
        columnOCR_DATA.Width = 130;
        DataGridViewColumn columnFetch_Name = dataGridViewOCR.Columns[3];
        columnFetch_Name.Width = 130;
        dataGridViewOCR.Columns[0].Name = "BatchID";
        dataGridViewOCR.Columns[1].Name = "DOCID";
        dataGridViewOCR.Columns[2].Name = "OCR_DATA";
        dataGridViewOCR.Columns[3].Name = "Fetch_Name";
        #endregion

        #region DatagridViewDados
        dataGridViewDados.ColumnCount = 5;
        DataGridViewColumn columnDataDoc = dataGridViewDados.Columns[0];
        columnDataDoc.Width = 120;
        DataGridViewColumn columnDataCliente = dataGridViewDados.Columns[1];
        columnDataCliente.Width = 120;
        DataGridViewColumn columnDataData = dataGridViewDados.Columns[2];
        columnDataData.Width = 120;
        DataGridViewColumn columnDataTipoDoc = dataGridViewDados.Columns[3];
        columnDataTipoDoc.Width = 120;
        DataGridViewColumn columnDataOutros = dataGridViewDados.Columns[3];
        columnDataOutros.Width = 120;
        dataGridViewDados.Columns[0].Name = "DOC";
        dataGridViewDados.Columns[1].Name = "Cliente";
        dataGridViewDados.Columns[2].Name = "Data";
        dataGridViewDados.Columns[3].Name = "TipoDoc";
        dataGridViewDados.Columns[4].Name = "Outros";
        #endregion

        #region DatagridViewDocumentos
        int JobID = 
        Convert.ToInt32(dataGridViewDocumentos.Rows[e.RowIndex].Cells[0].Value.ToString());
        int BatchID = 
        Convert.ToInt32(dataGridViewDocumentos.Rows[e.RowIndex].Cells[0].Value.ToString());
        dataGridViewDocumentos.DataSource = null;
        dataGridViewDocumentos.Columns.Clear();
        dataGridViewDocumentos.Refresh();
       
       
       
        DataGridViewColumn columnCaixa = dataGridViewDocumentos.Columns[0];
        columnCaixa.Width = 50;
        DataGridViewColumn columnDOC = dataGridViewDocumentos.Columns[1];
        columnDOC.Width = 50;
        DataGridViewColumn columnID = dataGridViewDocumentos.Columns[2];
        columnID.Width = 50;
        DataGridViewColumn columnPROC = dataGridViewDocumentos.Columns[3];
        columnPROC.Width = 50;

        dataGridViewDocumentos.Columns.Add(columnCaixa);
        dataGridViewDocumentos.Columns.Add(columnDOC);
        dataGridViewDocumentos.Columns.Add(columnID);
        dataGridViewDocumentos.Columns.Add(columnPROC);
        dataGridViewDocumentos.ColumnCount = 4;

        
        DataTable dt = da.Sp_Teste(JobID, BatchID);
        dataGridViewDocumentos.DataSource = dt;
        #endregion


    }
}

这是我的sp:

    CREATE PROCEDURE SP_SELECT_DOCS_WHERE_JOBID_STATUS
@JobID INT,
@BatchID INT
AS
BEGIN

SELECT top(10) i.*
from jobtable as j
  inner join batchtable as b
  on j.JobID = b.JobID
  inner join imgtable as i
  on i.BatchID = b.BatchID
END
GO

希望你们能帮帮我,现在我没有出现任何错误。

【问题讨论】:

  • Sp_Teste返回的DataTable是否有数据?
  • 如果你愿意,我也可以发布我的 sp @Crowcoder
  • 还是同样的问题。您是否正在调试它以查看它是否带回任何数据?
  • @Crowcoder 那是我无法调试的东西,它直接进入应用程序不让我调试
  • 你知道如何使用断点和单步执行代码吗?

标签: c# stored-procedures datagridview


【解决方案1】:

删除这一行 dataGridViewDocumentos.Columns.Clear(); 并检查会发生什么

调试好,,,, 使用 F10 键进行单步调试并检查您的 sp 是否返回任何数据。

【讨论】:

  • 你好 brucode 对不起,我试了一下,结果是一样的从那里开始调试
  • 我们能看到你调用这个Update方法的代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 2017-04-21
  • 2016-09-25
相关资源
最近更新 更多