Считывать данные из базы данных и сохранять результат в DataSet - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь прочитать данные из базы данных и сохранить их в DataSet как результат. Дело в том, что я хочу создать Report в Dev Express, который содержит несколько параметров. Когда я сохраняю данные в наборе данных, я хочу фильтровать отчет на основе ввода данных пользователем.

    public void BindToData(int OrgId, bool Status)
    {
        try
        {
            string connString = @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=DesignSaoOsig1;Integrated Security=True";
            string strproc = "TestReport";
            using (SqlDataAdapter sda = new SqlDataAdapter(strproc, connString))
            {
                sda.SelectCommand.CommandType = CommandType.StoredProcedure;
                sda.SelectCommand.Parameters.Add("@Status", SqlDbType.Bit).Value = Status;
                sda.SelectCommand.Parameters.Add("@OrgJed", SqlDbType.Int).Value = OrgId;

                DataSet ds = new DataSet();
                sda.Fill(ds);
                XtraReport report = new XtraReport();
                report.DataSource = ds;
            }
        }
        catch (Exception)
        {
            throw;
        }
    }

Нажмите кнопку, чтобы запустить функцию

        protected void Button1_Click(object sender, EventArgs e)
        {
            int OrgId = 1;
            bool Status = true;
            BindToData(OrgId,Status);
        }

Пока это код, который я написал, но когда я его запускаю report.DataSource = ds, не дает никакого результата.

Когда я отлаживаю его, я не видел, где ошибка.

Хранимая процедура

USE [DesignSaoOsig1]
GO
/****** Object:  StoredProcedure [dbo].[TestReport]    Script Date: 29. 5. 2020. 09:20:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[TestReport]
(           
    @Status bit,
    @OrgJed int
) 
AS  
BEGIN

    SELECT TOP 1 OrgUnitID
    FROM    tblZaposleni_AD 
    --WHERE  Status =    @Status AND 
    --  OrgUnitID = @OrgJed  
END

1 Ответ

0 голосов
/ 29 мая 2020

Я только что запустил ваш точный код с другой строкой подключения:

        try
        {
            string connString = @"Confidential";
            string strproc = "TestReport";
            using (SqlDataAdapter sda = new SqlDataAdapter(strproc, connString))
            {
                sda.SelectCommand.CommandType = CommandType.StoredProcedure;
                sda.SelectCommand.Parameters.Add("@Status", SqlDbType.Bit).Value = true;
                sda.SelectCommand.Parameters.Add("@OrgJed", SqlDbType.Int).Value = 1;

                DataSet ds = new DataSet();
                sda.Fill(ds);

                string temp = "123"; // Line to set breakpoint on
            }
        }
        catch (Exception)
        {
            throw;
        }

И он дает мне результат в одной таблице с одной строкой, как показано в окне просмотра ниже:

enter image description here

Обратите внимание, что в дополнение к выбору идентификатора из таблицы я выбрал входные параметры, чтобы они были видны и могли быть проверены, что то, что получается, совпадает с тем, что было дюймы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...