[Microsoft.SqlServer.Server.SqlProcedure]
public static void MyMethod()
{
string connectionString = "context connection=true";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlMetaData[] metaData = {
new SqlMetaData("Column1", System.Data.SqlDbType.NVarChar)
,new SqlMetaData("Column1", System.Data.SqlDbType.NVarChar)
};
SqlDataRecord record = new SqlDataRecord(metaData);
record.SetString(0,"hello world");
SqlContext.Pipe.SendResultsRow(record);
}
}
Когда я запускаю метод в SQL
EXEC MyMethod
Ошибка
Msg 6522, уровень 16, состояние 1, процедура MyMethod, строка 0 A.NET Ошибка Framework возникла во время выполнения пользовательской процедуры или совокупность "MyMethod": System.ArgumentException: dbType NVarChar для этого конструктора недействителен. Исправление System.ArgumentException: at Microsoft.SqlServer.Server.SqlMetaData.Construct(имя строки, SqlDbType dbType, Boolean useServerDefault, Boolean isUniqueKey, SortOrder columnSortOrder, Int32 sortOrdinal) при Microsoft.SqlServer.Server.SqlMetaData..ctor(имя строки, SqlDbType dbType) в WcfClrApps.MyNamespace.MyMethod()
Как можно вернуть запись, которую я создаю? Я не хочу запускать SQL. Для .NET 3.5 устанавливается сборка проекта. MSDN указывает, что 4.0 не поддерживается в SQL 2008 R2.