为SQL

时间:2018-04-26 13:49:49

标签: sql sql-server visual-studio

设置

我目前有两个表,一个有类别,另一个有产品。 这些类别具有ID及其父级ID,产品也包含其所属类别的ID。

我需要什么

为了减少我对数据库的请求数量,我希望能够将多个ID导入到该过程中,因此我不需要为每个子类别请求产品。

问题

是否可以导入多个值(如矩阵),以便我可以获取所有值或循环来直接识别MySQL所需的类别?

实施例: enter image description here

我使用的是什么:Microsoft SQL Server和Visual Studio 2010

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可能希望调查在Visual Studio中使用结构化数据类型,在SQL Server中使用TABLE TYPE。您可以在VS代码中构建DataTable,然后在存储过程中将DataTable作为结构化数据类型传递。从那里你可以加入TABLE TYPE,从中插入等等。

 DataTable dtMyDataTable= new DataTable("dtMyDataTable");
 dtMyDataTable.Columns.Add("Val1", typeof(bool));
 dtMyDataTable.Columns.Add("Val2", typeof(string));

 dtMyDataTable.Rows.Add(Param1, Param2); // Maybe add values in a loop in VS

  parameter = new SqlParameter();
  parameter.ParameterName = "@MyTableTypeSPParameter";
  parameter.SqlDbType = SqlDbType.Structured;
  parameter.Value = dtMyDataTable;
  cmd.Parameters.Add(parameter);

更多信息:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/table-valued-parameters