saniales
saniales

Reputation: 461

Create dinamically a Dataset to fill reports on Visual Studio

I am searching for a way to create dinamic Datasets to be binded to my reports
(I am using C# on Visual Studio 2015 Community). Can anyone explain how can I do it? The first idea is to create a Dataset from a query then bind it to my report, but I cannot create a report without telling VS a DataSet (which must be connected to a DB using a static ConnectionString (VS purposes me only the Wizard, I have no idea on how to do it dinamically)

Example Code of what I would like to have:

DataSet myReportDS = ADO.getDS("SELECT * FROM" + 
"Table1 JOIN Table2 ON Table1.pkey = Table2.fkey");  
    //here I am stuck because I don't know even how to add objects without a 
    //static connection to my report (Designer) and how to bind it.

Have also in mind that the DBMS is PostgreSQL.

Thanks a lot.

Upvotes: 0

Views: 427

Answers (2)

saniales
saniales

Reputation: 461

In the end I found this article to solve my problem
https://blogs.msdn.microsoft.com/magreer/2008/10/16/setting-the-datasource-for-a-report-at-runtime/ The problem in fact is that VS forces the user to have a static DataSet to permit the report creation. So basically I had to create a copy of my DB Schema in local environment, then I executed my queries normally and then used Report.Fill() method. As soon as the schema is the same it works!

Upvotes: 2

Jeroen van Langen
Jeroen van Langen

Reputation: 22083

You could use a SqlDataAdapter or OleDbDataAdapter.

For example:

// Assumes that connection is a valid SqlConnection object.
string queryString = 
  "SELECT CustomerID, CompanyName FROM dbo.Customers";
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);

DataSet customers = new DataSet();
adapter.Fill(customers, "Customers");

There are more examples on the msdn site.

Source: https://msdn.microsoft.com/en-us/library/bh8kx08z(v=vs.110).aspx

Upvotes: 0

Related Questions