首页 > 解决方案 > 如何在加载时使用我的 StoredProcedure 填充 datagridView

问题描述

我有这个存储过程,它从内部连接中选择前 10 个结果

    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

我不知道为什么它不起作用是当我运行应用程序时,数据网格只是空的。

下一个代码在我的 dataAccess 类上

public DataTable SP_SELECT_DOCS_WHERE_JOBID_STATUS_IBML1(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();

        }

最后有我试图填写 dgv 的表单文件

private void FillDGVDocs(int JobID, int BatchID)
    {
       
       
        dataGridViewDocumentos.DataSource = null;
        dataGridViewDocumentos.Columns.Clear();
        dataGridViewDocumentos.Refresh();
        DataTable dt = da.SP_SELECT_DOCS_WHERE_JOBID_STATUS_IBML1 (JobID, BatchID);
        dataGridViewDocumentos.DataSource = dt;

        dataGridViewDocumentos.Columns[1].HeaderText = "Caixa";
        dataGridViewDocumentos.Columns[2].HeaderText = "DOC";
        dataGridViewDocumentos.Columns[3].HeaderText = "ID";
        dataGridViewDocumentos.Columns[4].HeaderText = "PROC";
    }

提前谢谢各位。

标签: c#sqlsql-serverstored-procedures

解决方案


推荐阅读