Ich habe versucht, eine gespeicherte Prozedur zu erstellen, die Werte aus meinem Programm und fügt es in bestimmten Spalten in einer Tabelle ein. Ich bekomme immer eine falsche Syntax in der gespeicherten Prozedur, kann aber nicht herausfinden, warum? Der Code aus dem Programm:sql Server gespeicherte Prozedur, um Datensätze zu aktualisieren
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
Jede mögliche Unterstützung geschätzt?
Was ist der Fehler? Kannst du es hier einfügen? –
Nicht verwandt mit Ihrem Problem, aber Präfix Ihre sprocs mit sp_ wird von MS abgeraten: http://msdn.microsoft.com/en-us/library/ms190669.aspx –
Ein heikeler Punkt, es sei denn, Sie wissen genau, was Sie tun und warum, möchten Sie nicht wirklich Ihre Prozeduren mit "sp_" voranstellen. SQL führt eine zusätzliche Verarbeitung für alle sp_-Prozeduren durch, und dies könnte Sie im Laufe der Zeit stolpern. (Detaillierte Erklärung finden Sie in BOL.) –