Member 14898617 Ответов: 1

Выполните запрос и заполните его в поле datagrid


У меня есть приложение winform, подключенное к базе данных access в качестве источника данных ,

но в access я использовал это ниже SQL для создания таблицы запросов под названием trend:

TRANSFORM Count(Complaint_Number) AS [Total Numbers]
SELECT Nature_of_problem, Count(Complaint_Number) AS [Total Numbers of Issues]
FROM master_table
GROUP BY Nature_of_problem
PIVOT Format(Complaint_Received_On,"mmm") In ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");


Что я уже пробовал:

Но я не знаю , как выполнить это & заполнить то же самое в поле datagrid на событии загрузки формы(dataset:CSCdataset), пожалуйста, помогите мне.

Sandeep Mewara

Вы хотите выполнить вышеуказанные SQL-запросы, не так ли?

Хранимую процедуру определения С выше и ты называешь это СП из кода C#. ?

Member 14898617

Спасибо за ваш ответ , проблема в том, что я использую базу данных access
(csc.accdb на моем рабочем столе)в качестве источника данных не MYSQL , который может быть хранимыми процедурами, поэтому не могли бы вы помочь мне в выполнении непосредственно путем кодирования ? и заполните то же самое в поле таблицы данных n событие загрузки формы.

1 Ответов

Рейтинг:
0

OriginalGriff

Цитата:
Спасибо за ваш ответ , проблема в том, что я использую базу данных access
(csc.accdb на моем рабочем столе)в качестве источника данных не MYSQL , который может быть хранимыми процедурами, поэтому не могли бы вы помочь мне в выполнении непосредственно путем кодирования ? и заполните то же самое в поле таблицы данных n событие загрузки формы.

Access (по крайней мере, начиная с версии 2010 года) имеет хранимые процедуры: Как создать хранимую процедуру в MS Access? - переполнение стека[^] показывает вам, как их создавать.


Member 14898617

Здравствуйте, В соответствии с вашим предложением , я сделал приведенный ниже код , но agin я поражен форматированием этого sql, чтобы включить двойные кавычки, не могли бы вы мне помочь :

private readonly OleDbConnectionStringBuilder _builder = new OleDbConnectionStringBuilder
        {
            Provider = "Microsoft.ACE.OLEDB.12.0",
            DataSource = "S:\\Customer_Service\\Wires\\Database for CSC\\Backend data of databse do not open\\CSC.accdb"
        };

        public DataTable Read()
        {
            var dt = new DataTable();

            using (var cn = new OleDbConnection { ConnectionString = _builder.ConnectionString })
            {

                using (var cmd = new OleDbCommand { Connection = cn })
                {
                    cmd.CommandText = @"TRANSFORM Count(Complaint_Number) AS [Total Numbers]
                                       SELECT Nature_of_problem, Count(Complaint_Number) AS[Total Numbers of Issues]
                                       FROM master_table
                                       GROUP BY Nature_of_problem
                                       PIVOT Format(Complaint_Received_On, "mmm") In("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); 
                    cn.Open();
                    dt.Load(cmd.ExecuteReader());
                }
            }

            return dt;

        }
    }

OriginalGriff

Чтобы включить двойные кавычки в экранированный строковый литерал, просто удвоьте их:

string s = @"This is a double quote: "" this is a single quote: '";

Member 14898617

Большое вам спасибо теперь он работает

OriginalGriff

Всегда пожалуйста!