我正试图在两种方式之间传递C#和SQL Server之间的DataTable。我目前正在使用XML来促进这一点,但我正在努力以两种方式反序列化XML(即在SQL Server中反序列化C#XML,并在C#中反序列化SQL Server XML)。我目前正在使用以下过程在C#中创建XML:
var dt = new DataTable();
//Populate the DataTable...
var set = new DataSet();
set.Tables.Add(dt);
var sb = new StringBuilder();
using (var stringWriter = new StringWriter(sb))
{
set.WriteXml(stringWriter);
}
string xml = sb.ToString();
然后我希望能够在SQL Server中解析这个XML。有没有办法在SQL Server中自动将其解析为DataTable(使用我认为的模式)?
答案 0 :(得分:0)
从sql server 2008开始,您可以使用表值参数将数据表from .net传递给sql server。
您必须在数据库中创建用户定义的表类型,并将参数作为readonly传递给存储过程,如演示here和there。
要将数据表从sql server传递到.net,您可以使用.net的TableAdapter
执行select语句并填充DataTable
对象,如dmonstrated here。