Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为SQL中的过程导入多个值_Sql_Sql Server_Visual Studio - Fatal编程技术网

为SQL中的过程导入多个值

为SQL中的过程导入多个值,sql,sql-server,visual-studio,Sql,Sql Server,Visual Studio,设置: 我目前有两个表,一个是类别表,一个是产品表。 类别有一个ID和它的父级ID,产品也包括它们所属类别的ID 我需要什么 为了减少对数据库的请求量,我希望能够将多个ID导入到过程中,这样就不需要为每个子类别请求产品 问题 有没有可能导入几个值(比如一个矩阵),这样我就可以得到所有的值,或者直接从MySQL创建一个循环来标识所需的类别 例如: 我在使用什么:Microsoft SQL Server和Visual Studio 2010 提前谢谢 您可能希望在Visual Studio中使用结

设置

我目前有两个表,一个是类别表,一个是产品表。 类别有一个ID和它的父级ID,产品也包括它们所属类别的ID

我需要什么

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

问题

有没有可能导入几个值(比如一个矩阵),这样我就可以得到所有的值,或者直接从MySQL创建一个循环来标识所需的类别

例如:

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


提前谢谢

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

 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);

更多信息:

是的,您可以使用用户定义的表类型将数据的“矩阵”传递给存储过程。这也是一个有用的资源:添加一些链接和清晰的内容,这将是一个非常好的答案。