Using DataTable in .NET Core

developer82 picture developer82 · Feb 7, 2017 · Viewed 37.4k times · Source

I have a stored procedure in SQL Server that accepts a User-Defined Table Type. I'm following the answer from this post Bulk insert from C# list into SQL Server into multiple tables with foreign key constaints on how to send a DataTable to a stored procedure in SQL.

But when I create DataTable table = new DataTable(); I get an error that DataTable does not contain a constructor that takes 0 arguments.

I found this https://github.com/VahidN/EPPlus.Core/issues/4 which basically saying DataTable is no longer supported in .NET Core. So now what? how do I create a DataTable (or what is it's replacement)? how do I send a User-Defined Table Type to SQL Server on .NET Core?

Answer

Joe Healy picture Joe Healy · May 15, 2017

DataTable is now supported in .NET CORE 2.0. See my answer at .Net Core how to implement SQLAdapter ./ DataTable function . Sample code below works in 2.0.

public static DataTable ExecuteDataTableSqlDA(SqlConnection conn, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
   System.Data.DataTable dt = new DataTable();
   System.Data.SqlClient.SqlDataAdapter da = new SqlDataAdapter(cmdText, conn);
   da.Fill(dt);
   return dt;
}