그래서 나는 이러한 매개 변수를 사용하여 저장 프로 시저가 있습니다SQL 서버 매개 변수가있는 쿼리하지 설정 비트 값
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
테이블의 경우 MSVCFlag 열은 매개 변수의 값을 1로 설정하더라도 항상 0입니다.
문자열로 처리하면 올바르게 작동합니다.
"EXEC usp_insertOrUpdateTimeMilesNote " & id & ",'" & ADID & "'," & projectId & "," & taskId & "," & hours & "," & minutes & "," & miles & ",'" & note & "','" & filename & "'," & MSVCFlag & ";"
매개 변수가 잘못 되었습니까?
편집 : 투표를 좋아합니다. 이유를 설명하는 마음?
나는 당신이 True로 설정해야한다고 믿습니다. - db.Parameters.Add ("@MSVCFlag", SqlDbType.Bit) .Value = True' – stuartd
연결 문자열은 어떻게 생겼습니까? 'try {} catch {} '주위의'db.ExecuteNonQuery' – MethodMan
전에 값을 True로 설정하려고했는데 다시 시도했습니다. 삽입 후 테이블에 여전히 0이 표시됩니다. StackOverflow에서 비트 값이 0 또는 1로되어있는 다른 곳을 읽었습니다. – tolsen64