こんにちは私はC#を使用してCLRストアドプロシージャの作成に取り組んでいます。そのために例を通して学習しています。
以下は私が今試していることです
public static void GetProductsByPrice(int price)
{
SqlConnection connection = new SqlConnection("context connection=true");
connection.Open();
string commandText = "SELECT * FROM Products WHERE PRICE < " + price.ToString();
SqlCommand command = new SqlCommand(commandText, connection);
SqlDataReader reader = command.ExecuteReader();
// Create the record and specify the metadata for the columns.
SqlDataRecord record = new SqlDataRecord(
new SqlMetaData("col1", SqlDbType.NVarChar, 100),
new SqlMetaData("col2", SqlDbType.NVarChar, 100));
// Mark the begining of the result-set.
SqlContext.Pipe.SendResultsStart(record);
// Send 10 rows back to the client.
while (reader.Read())
{
// Set values for each column in the row.
record.SetString(0, reader[1].ToString()); //productName
record.SetString(1, reader[2].ToString()); // productDescription
// Send the row back to the client.
SqlContext.Pipe.SendResultsRow(record);
}
// Mark the end of the result-set.
SqlContext.Pipe.SendResultsEnd();
}
しかし、実行しようとすると、以下のエラーが発生します
メッセージ6549、レベル16、状態1、プロシージャGetProductsByPrice、行0
ユーザー定義ルーチンまたは集計の実行中に.NET Frameworkエラーが発生しました'GetProductsByPrice':
System.Data.SqlClient.SqlException:ロケール識別子(LCID)16393はサポートされていませんSQLServerによる。
System.Data.SqlClient.SqlException:
Microsoft.SqlServer.Server.SmiEventSink_Default.DispatchMessages(Boolean ignoreNonFatalMessages)
at Microsoft.SqlServer.Server.SqlPipe.SendResultsStart(SqlDataRecord record)
at StoredProcedures.GetProductsByPrice(Int32 price)
ユーザートランザクション(存在する場合)ロールバックされます。
コードについては、このmsdnの記事を参照しています。
これについて私を助けてください。