0

.cshtml ページの小さな関数から xml を取得しようとしています。エラーが発生します。ただし、これはコンソール/フォーム環境では問題なく動作します。

3 つのパラメーターと 1 つの例外が必要です。

myDll.GetXML(year, username, uniqueidentifier, out ex);

このページを実行すると、「文字列から一意識別子への変換中に変換に失敗しました」というエラーが表示されます。</p>

または…のスタック</p>

System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting from a character string to uniqueidentifier.

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()

   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

   at System.Data.SqlClient.SqlDataReader.get_MetaData()

   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)

   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)

   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)

   at System.CapTool.Server.DAL.DAL.GetCapabilitiesXML(Int32 fiscalYear, String majComId, String userName, Exception& exception)

GetXML 関数内では、パラメータをストア プロシージャに適用するだけです。ストア プロシージャはオブジェクトを返します。そこから、.cshtml ですべての楽しいことを行うことができます。

SQL Management Studio 内から手動で値を入力すると、実際に正しい結果が得られます。ここでも、ウィンドウ フォーム アプリケーションを作成すると、正しい結果が得られます。

.cshtml または .aspx ページになると、変換に失敗しました。

ストア プロシージャの uniqueidentifier パラメータを既にキャストしようとしましたが、それでもエラーが発生しました。

私は思う…それは一意の識別子と関係があると思います…しかし、私は何をすべきかわかりません…</p>

4

2 に答える 2

2

パラメータの型は何ですか? また、それらはどのように SQL に変換されていますか?

クエリ アナライザーを実行し、データベースで実際に何が起こっているかを確認します。"''" を追加または除外しているようで、SQL が正しく変換されていないようです。

于 2010-08-17T07:13:16.047 に答える
0
myDll.GetXML(year, username, uniqueidentifier, out ex);

「WebMatrix」環境で作業しています。したがって、(今のところ)「余分な「」」「」などの構文の強調表示を有効にしないでください。

将来的には、パラメーターが有効であることを確認するために、チェック、チェック、および再度チェックします。

于 2010-08-18T06:45:44.787 に答える