在声明变量时编写SQL语句

时间:2015-04-16 19:36:17

标签: sql-server vb.net

我正在尝试在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'))

2 个答案:

答案 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