我正在尝试在VB应用程序中编写SQL语句。在这种情况下,我需要声明两个变量来调用其他存储过程。当我在SSMS中运行它时,此代码有效,但我不确定如何在VB中执行此操作。
说明:
DECLARE @NewIncidentNoteId NVARCHAR(15)
EXEC uspGetNextId @NewIncidentNoteId OUTPUT
INSERT INTO [dbo].[IncidentNotes]
([Id]
,[IncidentId]
,[TaskId]
,[VLevel]
,[NotesSourceType]
,[Notes]
,[LogDate]
,[LogTime]
,[LogTZ]
,[LogBy]
,[LogByName]
,[NotifyFlg]
,[ActivityDate]
,[ActivityTime]
,[ShowInReport])
VALUES()
(@NewIncidentNoteId
,'60Z3M'
,''
,'1'
,'EIRInvestigatorComment'
,'This is a TEST note.'
,'20150416'
,'10:10:10'
,'UTC'
,'12876'
,'USER, ADMIN'
,'False'
,'20150416'
,'12:13:13'
,'1'))
答案 0 :(得分:1)
首先,正如其他人所说,最好的选择是将其作为存储过程实际添加到数据库中。然后,您可以通过简单的ADO.NET命令执行存储过程。但是,如果您坚持将整个SQL脚本作为命令发送,有几种方法可以将其作为字符串。
VB目前对多行字符串文字没有很好的支持(作为Visual Studio 2015的一部分,VB.NET 14中添加了对其的长期支持)。有几种解决方法。有关一些不错的选择,请参阅this other answer of mine。但是,对于类似的内容,您可能需要考虑从嵌入式资源或外部脚本文件中读取脚本。
答案 1 :(得分:-1)
Set cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "empdetails"
cmd.Parameters.Append cmd.CreateParameter_
("empid", adVarChar, adParamInput, 6, str_empid)
Set rs = cmd.Execute
If Not rs.EOF Then
txt_firstname = rs.Fields(0)
txt_title = rs.Fields(1)
txt_address = rs.Fields(2)
End If
设置cmd.ActiveConnection = Nothing
此代码显示如何在vb6中使用SP,如果它是VB.net,则不确定使用哪个vb然后可以使用ADO.net来执行此操作
此链接也可能有用 http://www.codeproject.com/Articles/15222/How-to-Use-Stored-Procedures-in-VB