だから私は、これらのパラメータを持つストアドプロシージャを持っている:SQL Serverのパラメータ化クエリではない設定ビット値
ALTER PROCEDURE [dbo].[usp_insertOrUpdateTimeMilesNote]
@id int,
@ADID varchar(10),
@projectId int,
@taskId tinyint,
@hours tinyint = 0,
@minutes tinyint = 0,
@miles smallint = 0,
@note varchar(max),
@filename varchar(50),
@MSVCFlag bit
AS
そして、私はそうのようにそれを呼んでいる:ターゲットで
Using db As New SqlCommand("usp_insertOrUpdateTimeMilesNote", New SqlConnection(ConnStr))
db.CommandType = CommandType.StoredProcedure
db.Parameters.Add("@id", SqlDbType.Int).Value = 0
db.Parameters.Add("@ADID", SqlDbType.VarChar, 10).Value = ADID
db.Parameters.Add("@projectId", SqlDbType.Int).Value = ProjectId
db.Parameters.Add("@taskId", SqlDbType.Int).Value = 0
db.Parameters.Add("@hours", SqlDbType.TinyInt).Value = 0
db.Parameters.Add("@minutes", SqlDbType.TinyInt).Value = 0
db.Parameters.Add("@miles", SqlDbType.TinyInt).Value = 0
db.Parameters.Add("@Note", SqlDbType.VarChar, -1).Value = NoteText
db.Parameters.Add("@filename", SqlDbType.VarChar, 50).Value = ""
db.Parameters.Add("@MSVCFlag", SqlDbType.Bit).Value = 1
db.Connection.Open()
db.ExecuteNonQuery()
db.Connection.Close()
End Using
テーブルの場合、パラメータの値を1に設定しても、MSVCFlagカラムは常に0です。
文字列として使用すると、正常に動作します。
"EXEC usp_insertOrUpdateTimeMilesNote " & id & ",'" & ADID & "'," & projectId & "," & taskId & "," & hours & "," & minutes & "," & miles & ",'" & note & "','" & filename & "'," & MSVCFlag & ";"
私はこのパラメータを間違っていますか?
編集:投票が大好きです。どうして?
私はそれをTrueに設定し、1 - 'db.Parameters.Add(" @MSVCFlag "、SqlDbType.Bit).Value = True'に設定しないと信じています。 – stuartd
接続文字列はどのようなものですか? 'try {} catch {}'の周りの 'db.ExecuteNonQuery' – MethodMan
以前に値をTrueに設定しようとしましたが、もう一度試しました。挿入後の表にはまだ0が表示されます。私はStackOverflowのどこかでビット値が0か1のいずれかであると読んでいます。 – tolsen64