2
こんにちは、私は目 ADO例外オペランドタイプ衝突
の別のセットは、奇妙なエラーする必要が取得しています私はこのコードを持っている: aa.contentsはbyte []型のものでありcon.Open();
var cmd = new SqlCommand("INSERT INTO [lntmuser].[attach] ([sysid],[name],[att_size],[cid],[flags],[contents]) VALUES (@sysid, @name, @att_size, @cid, @flags, @contents)", con) { CommandType = CommandType.Text };
(Blah, Blah, ASIGN FIRST 5 VALUES, These All work)
cmd.Parameters.AddWithValue("@contents", SqlDbType.Image).Value = aa.contents ?? (object) DBNull.Value;
。最初に試してみた
"?? (object) DBNull.Value;"
と私は "挿入が予期して@contentsパラメータ"を持っていたので、私は? (オブジェクト)DBNull.Value;
RestoreTest.TestMultiParAttLookUp : FailedSystem.Data.SqlClient.SqlException : Operand type clash: nvarchar is incompatible with image
at System.Data.SqlClient.SqlConnection.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.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.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at bcDAL.RestoreFunc.ExecuteSQL(List`1 emailIds, List`1 attIds, String conStrA, String conStrM) in RestoreFunc.cs: line 173
at bcDAL.RestoreFunc.RestoreEntry(String sysid, String conStrA, String conStrM) in RestoreFunc.cs: line 22
at tcUnitTests.RestoreTest.TestMultiParAttLookUp() in RestoreTest.cs: line 18
ここでnvarcharが再生に来ましたか? I was looking at this questionしかし、値を割り当てる前にSQLデータ型を明示しています。
私はちょうど睡眠笑を必要とするかもしれません。前もって感謝します。
これは動作しますが、私の眠気の目には、構文以外の違いは何ですか? –
'AddWithValue()。Value ='はそれをすべて一回で行います:型とともに値を設定し、それらが一致することを保証します。値が指定したタイプと一致しない場合は、一致するものにダウングレードします。ここで私の答えでは、あなたは明示的であり、オブジェクトを作成するときに型を設定します。私は本当の答えはありません、私たちは本当に確実にADO.NETのソースを見なければならないでしょう。 –
非常に興味深いおかげで再びp –