私のプログラムから値をとり、テーブルの特定の列に挿入するストアドプロシージャを作成しようとしました。 ストアドプロシージャの構文が間違っているのを続けるが、その理由を理解できない?プログラムから コード:レコードを更新するSQL Serverストアドプロシージャ
commandObj.CommandText = "sp_insert_profileDetails"
commandObj.Parameters.Clear()
Dim m_param As SqlParameter
m_param = commandObj.Parameters.Add("@authorId", SqlDbType.NVarChar, 100)
m_param.Direction = ParameterDirection.Input
m_param.Value = foundProfiles.Item(i)
m_param = commandObj.Parameters.Add("@age", SqlDbType.NVarChar, 50)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfileAge.Item(i)
m_param = commandObj.Parameters.Add("@gender", SqlDbType.NVarChar, 50)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfileSex.Item(i)
m_param = commandObj.Parameters.Add("@locale", SqlDbType.NVarChar, 50)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfileLocation.Item(i)
m_param = commandObj.Parameters.Add("@pic", SqlDbType.NVarChar, 100)
m_param.Direction = ParameterDirection.Input
m_param.Value = faceProfilePic.Item(i)
Dim recordsAffected As Integer = commandObj.ExecuteNonQuery
Return recordsAffected
ALTER procedure [dbo].[sp_insert_profileDetails]
@authorId nvarchar(100),
@age nvarchar(50),
@gender nvarchar(50),
@locale nvarchar(50),
@pic nvarchar(100)
AS
Begin
set nocount on
update [dbo].ProfileFeed
set [age] = @age,
[sex] = @gender,
[locale] = @locale,
[pic] = @pic
where
[authorId] = @authorId
end
感謝どのような援助?
エラーは何ですか?ここに貼り付けてコピーできますか? –
あなたの問題とは無関係ですが、sprocにsp_のプレフィックスを付けることは、MSによって推奨されません:http://msdn.microsoft.com/en-us/library/ms190669.aspx –
あなたが何をしているのか正確に分からない限り、難解な点ですそしてなぜ、あなたは本当にプロシージャの前に "sp_"を付けたくないのですか? SQLはすべてのsp_手続きに対して特別な処理を行います。 (詳しい説明はBOLにあります) –