ALTER proc [dbo].[usp_CreateMemberByString](@Input
nvarchar(max),@KeyUser bigint,@KeySession int = 0 , @KeyClient bigint
=0,@retVal INT OUTPUT,@retMsg varchar(500) output)
AS
BEGIN
DECLARE @KeyMember bigint,@keyHousehold bigint,@MemberID
varchar(30),@FirstName varchar(50),@LastName varchar(50),@MiddleInitial
varchar(1),@NamePrefix varchar(20),@NameSuffix varchar(20)
,@Title int,@CompanyName varchar(50),@Status bit,@EnrollDate
datetime,@IsMainMember bit,@HomePhone varchar(20),@MobilePhone
varchar(20),@WorkPhone varchar(20),@DateofBirth datetime
,@Gender varchar(10),@EmailAddress varchar(100),@Notes
varchar(2000),@Source varchar(20)
,@Address1 varchar(45),@Address2 varchar(45),@City
varchar(30),@StateProvince varchar(50),@CountryCode
varchar(10),@StreetNumber varchar(10),@PostalCode varchar(10)
,@SendEmail bit,@SendMail bit,@SendText bit
,@EnteredBy varchar(20)
,@imgPath varchar(500) = ''
DECLARE @StartIndex INT, @EndIndex INT,@Character char = ','
SET @StartIndex = 1
IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
BEGIN
SET @Input = @Input + @Character
END
WHILE CHARINDEX(@Character, @Input) > 0
BEGIN
SET @EndIndex = CHARINDEX(@Character, @Input)
--Start sperate item name and vakue
DECLARE @SubStartIndex INT, @SubEndIndex INT,@SubCharacter char = ':',@SubInput NVARCHAR(250)
SET @SubStartIndex = 1
SET @SubInput = SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
SET @SubEndIndex = CHARINDEX(@SubCharacter, @SubInput)
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'MemberID')
Begin
set @MemberID = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'FirstName')
Begin
set @FirstName = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'LastName')
Begin
set @LastName = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'MiddleInitial')
Begin
set @MiddleInitial = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'NamePrefix')
Begin
set @NamePrefix = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'NameSuffix')
Begin
set @NameSuffix = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Title')
Begin
set @Title = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'CompanyName')
Begin
set @CompanyName = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Status')
Begin
set @Status = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'EnrollDate')
Begin
set @EnrollDate = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'IsMainMember')
Begin
set @IsMainMember = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'HomePhone')
Begin
set @HomePhone = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'MobilePhone')
Begin
set @MobilePhone = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'WorkPhone')
Begin
set @WorkPhone = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'DateofBirth')
Begin
set @DateofBirth = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Gender')
Begin
set @Gender = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'EmailAddress')
Begin
set @EmailAddress = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Notes')
Begin
set @Notes = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Source')
Begin
set @Source = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Address1')
Begin
set @Address1 = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'Address2')
Begin
set @Address2 = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'City')
Begin
set @City = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'StateProvince')
Begin
set @StateProvince = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'CountryCode')
Begin
set @CountryCode = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'StreetNumber')
Begin
set @StreetNumber = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'PostalCode')
Begin
set @PostalCode = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'SendEmail')
Begin
set @SendEmail = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'SendMail')
Begin
set @SendMail = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'SendText')
Begin
set @SendText = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
if(SUBSTRING(@SubInput, @SubStartIndex, @SubEndIndex - 1) = 'KeyMember')
Begin
set @KeyMember = SUBSTRING(@SubInput, @SubEndIndex + 1, LEN(@SubInput));
end
--End sperate item name and vakue
SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
END
if(@KeyMember != 0)
begin
exec usp_UpdateMember 0,@KeyMember,0,@MemberID,@FirstName,@LastName,@MiddleInitial,@NamePrefix,@NameSuffix,@Title,@CompanyName,@Status
,@EnrollDate,@IsMainMember,@HomePhone,@MobilePhone,@WorkPhone,@DateofBirth,@Gender,@EmailAddress,@Notes,@Source,@EnteredBy
,@Address1,@Address2,@City,@StateProvince,@CountryCode,@StreetNumber,@PostalCode,@SendEmail,@SendMail,@SendText,@EnteredBy,''
,@retVal output,@retMsg output;
end
else
begin
exec usp_CreateMember @KeyUser,@keyHousehold,@MemberID,@FirstName,@LastName,@MiddleInitial,@NamePrefix,@NameSuffix,@Title,@CompanyName,@Status,@EnrollDate,@IsMainMember
,@HomePhone,@MobilePhone,@WorkPhone,@DateofBirth,@Gender,@EmailAddress,@Notes,@Source,@Address1,@Address2,@City,@StateProvince,@CountryCode,@StreetNumber,@PostalCode
,@SendEmail,@SendMail,@SendText,@EnteredBy,@imgPath,@KeySession,@KeyClient,@retVal output,@retMsg output;
end
END
这是我创造的,但这里只添加到静态表我要动态地做到这一点的程序,
你期望什么样的答案?当你卡住时,你应该写你自己的代码并提出问题。我建议不要将这种类型的csv文件发送到存储过程,而是在您的C#代码中进行处理。 – Peter
您在编写Web API或存储过程时遇到困难吗?通过web API具有这样的通用接口是安全问题。 –