Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyświetlić kolumny DataColumns w tabeli Dataset?

Ze względu na ograniczenia TableAdapter kreatora, musisz utworzyć DataTable za pomocą kodu.

DataTable dataTable;

using (SqlConnection sqlConn = new SqlConnection())
{
    sqlConn.Open();

    using (SqlDataAdapter sqlDataAdapter = new SqlDataAdapter())
    using (sqlDataAdapter.SelectCommand = sqlConn.CreateCommand())
    {

        sqlDataAdapter.SelectCommand.CommandType = CommandType.Text;
        sqlDataAdapter.SelectCommand.CommandText = '
            SELECT * FROM (
                SELECT timeclock.dtTimeIn, timeclock.dtTimeOut, employees.sfirstname,
                    RANK() OVER ( ORDER BY dtTimeIn) rk1, --earliest record gets 1
                    RANK() OVER (ORDER BY dtTimeOut DESC) rk2 --latest record gets 1

                FROM TimeClock INNER JOIN
                    Employees ON TimeClock.lEmployeeID = Employees.lEmployeeID
                WHERE (dtTimeIn > dateadd(day, datediff(day, 0, getdate())-1, 0)) AND (dtTimeOut < dateadd(day, datediff(day, 0, getdate()), 0)) AND (sDept IN ('1', '2', '3'))
            ) A
            WHERE rk2=1';

        sqlDataAdapter.Fill(dataTable);
    }
}

Po posiadaniu dataTable wypełnione, po prostu przypisz go do DataSource ReportViewer

ReportDataSource rds = new ReportDataSource(dataTable.TableName, dataTable);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);

Pamiętaj, że duża część tych fragmentów kodu nie została przetestowana.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błędnie obliczona liczba tygodni i częściowych tygodni między dwoma dniami

  2. Parsowanie XML - Niedozwolony znak XML (podczas wykonywania procedury składowanej, uruchamianie zapytań procedury nie powoduje żadnych błędów)

  3. Jak obcinać wszystkie tabele w bazie danych za pomocą TSQL?

  4. Korzystanie z parametrów wyjściowych procedury składowanej w języku C#

  5. W jaki sposób DOŁĄCZENIE WEWNĘTRZNE/PRAWE/LEWE może być 14 razy wolniejsze niż DOŁĄCZENIE PEŁNE?