当前位置: 首页 > 编程语言 > C#

表值参数问题与MONOcs共享

时间:2023-04-10 21:26:42 C#

表值参数问题与MONOcs我有一个简单的代码来为表值类型创建一个SqlParameter。给定的代码适用于.NET4.0。问题出在MONOCS(3.12.0)上,我不能简单地在MONO中编译相同的代码。staticSqlParameterGetDataTableParam(string_tableName,DataTable_dt){SqlParametertValue=newSqlParameter();tValue.ParameterName="@dr"+_tableName;//@drFactorytValue.SqlDbType=SqlDbType.Structured;tValue.Value=_dt;t值。TypeName=string.Format("dbo.{0}Item",_tableName);//MONOCS在此行给出错误returntValue;Mono编译器给我这个错误:错误CS1061:类型`System.Data.SqlClient.SqlParameter'不包含`TypeName'的定义并且没有扩展方法`System.Data.SqlClient.SqlParameter'类型的`TypeName'可以是成立。您是否缺少程序集参考?(CS1061)给定的代码只是尝试为TableValued类型创建一个参数,并将数据表传递给SQL插入语句。我知道如果我使用存储过程可以解决错误,但在我的情况下,不可能为每个表创建MERGE插入SP。如果有解决此问题的方法,请帮助我。注意:众所周知,MONOSystem.Data.SqlClient.SqlParameter没有TypeName属性。如果我删除此属性,则可以正常编译,但会出现运行时错误:表类型参数“@drFactory”必须具有有效的类型名称。MONOSqlParameter类不公开TypeName属性,但它在源代码中。于是,我使用Reflection给TypeName属性赋值:以上就是C#学习教程的全部内容:表值参数问题和MONOcs。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——SqlParametertValue=newSqlParameter("@dr"+_tableName,_dt);tValue.SqlDbType=SqlDbType.Structured;System.Reflection.PropertyInfopropertyInfo=tValue.GetType().GetProperty("TypeName");propertyInfo.SetValue(tValue,"dbo.factoryItem",null);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: