[英]The dbType NVarChar is invalid for this constructor
[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
錯誤
消息6522,級別16,狀態1,過程MyMethod,第0行在執行用戶定義的例程或聚合“ MyMethod”的過程中發生了.NET Framework錯誤:System.ArgumentException:dbType NVarChar對此構造函數無效。 System.ArgumentException:at Microsoft.SqlServer.Server.SqlMetaData.Construct(字符串名稱,SqlDbType dbType,布爾useServerDefault,布爾isUniqueKey,SortOrder columnSortOrder,Int32 sortOrdinal)位於Microsoft.SqlServer.Server.SqlMetaData..ctor(字符串名稱,SqlDbType dbType )在WcfClrApps.MyNamespace.MyMethod()
如何返回我自己創建的記錄? 我不想運行任何SQL。 專為.NET 3.5設置了項目構建。 MSDN指示SQL 2008 R2不支持4.0。
問題有兩個。 1.需要最大長度。 2. SendResultsStart()
/ SendResultsEnd()
是必需的。
[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, 100)//Max length has to be specified
,new SqlMetaData("Column1", System.Data.SqlDbType.NVarChar, 100)//same story
};
SqlDataRecord record = new SqlDataRecord(metaData);
SqlContext.Pipe.SendResultsStart(record);//SendResultsStart must be called
//create a row and send it down the pipe
record.SetString(0,"hello world");
SqlContext.Pipe.SendResultsRow(record);
SqlContext.Pipe.SendResultsEnd();//End it out
}
}
從來沒有以這種方式做任何事情,但是這不會嗎?
[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.VarChar)
,new SqlMetaData("Column2", System.Data.SqlDbType.VarChar)
};
SqlDataRecord record = new SqlDataRecord(metaData);
record.SetString(0,"hello world");
SqlContext.Pipe.SendResultsRow(record);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.