传递数组给SQLServer存储过程如何用C#传递数组变量给SQLServer存储过程,并将数组值插入整行?提前致谢。SQLServer表:ID|产品|描述------------------------------8A3H|苏打水|600ml瓶C#数组:string[]info=newstring[]{"7J9P","Soda","2000mlbottle"};SQLServer存储过程:ALTERPROCINSERT(@INFO_ARRAYARRAY)ASBEGININSERTINTOProductsVALUES(@INFO_ARRAY)ENDinSQL在Server2008及更高版本中,在SQLServer中创建一个类型,如下所示:CREATETYPEdbo.ProductArrayASTABLE(IDINT,产品NVARCHAR(50),描述NVARCHAR(255));在SQLServer中更改您的过程:ALTERPROCINSERT_SP@INFO_ARRAYASdbo.ProductArrayREADONLYASBEGININSERTINTOProductsSELECT*FROM@INFO_ARRAYEND然后您需要创建一个DataTable对象,其值在C#中传递:DataTabledt=newDataTable();//添加列dt.Columns.Add("ID");dt.Columns.Add("产品");dt.Columns.Add("描述");//添加行dt.Rows.Add("7J9P","Soda","2000mlbottle");使用(conn){SqlCommandcmd=newSqlCommand("dbo.INSERT_SP",conn);cmd.CommandType=CommandType.StoredProcedure;SqlParameterdtparam=cmd.Parameters.AddWithValue("@INFO_ARRAY",dt);dtparam.SqlDbType=SqlDbType.Structured;这是一个更简单的例子:我正在搜索所有关于如何将任何数组传递给sqlserver的例子和答案,直到我找到这个链接,这是我如何将它应用到我的项目中:-下面的代码将获取一个数组作为参数,并将--array的值插入到另一个表中CreateProcedureProc1@INFO_ARRAYARRAYnvarchar(max)//这是你要从C#代码传递的数组@INFO_ARRAY,',','')+''InsertintoProductsselectt.value('.','varchar(max)')from@xml.nodes('//root/r')asa(t)END希望大家喜欢对大家有用,需要了解更多的C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
