我有一个简单的代码来创建表值类型的SqlParameter。给定的代码适用于.NET 4.0。 问题在于MONO CS(3.12.0),我不能简单地在MONO中编译相同的代码。表值参数问题与MONO cs
static SqlParameter GetDataTableParam(string _tableName, DataTable _dt)
{
SqlParameter tValue = new SqlParameter();
tValue.ParameterName = "@dr" + _tableName; //@drFactory
tValue.SqlDbType = SqlDbType.Structured;
tValue.Value = _dt;
tValue.TypeName = string.Format("dbo.{0}Item", _tableName); //MONO CS is giving error at this line
return tValue;
}
单编译器给我这个错误:
Error CS1061: Type `System.Data.SqlClient.SqlParameter' does not contain a definition for `TypeName' and no extension method `TypeName' of type `System.Data.SqlClient.SqlParameter' could be found. Are you missing an assembly reference? (CS1061)
给定的代码只是想创建TableValued类型的参数和数据表传递给SQL INSERT语句。
我知道如果我使用存储过程可以解决错误,但在我的情况下,它不可能为每个表创建MERGE插入SP。
所以请帮助我,如果有任何解决此问题。
注意:已知MONO System.Data.SqlClient.SqlParameter
不具有TypeName
属性。如果我删除此属性,它编译罚款,但给了运行时错误:
The table type parameter '@drFactory' must have a valid type name.