Threads
-------
ThreadID
UsersID
Date
ThreadTitle
ThreadParagraph
ThreadClosed
Topics
-----
TopicsID
Theme
Topics
Date
以下是我的发言:
StringBuilder insertCommand = new StringBuilder();
insertCommand.Append("DECLARE @TopicsID int");
insertCommand.Append("INSERT INTO Topics(Theme,Topics,Date)");
insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");
insertCommand.Append("SET @TopicsID = SCOPE_IDENTITY()");
insertCommand.Append("INSERT INTO Threads(UsersID,TopicsID,Date,ThreadTitle,ThreadParagraph,ThreadClosed)");
insertCommand.Append("VALUES(@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0)");
我明白了:
关键字附近的语法不正确 “进”。必须声明标量 变量“@TopicsID”。必须申报 标量变量“@TopicsID”。
答案 0 :(得分:2)
我注意到的第一件事是:
insertCommand.Append("VALUES('@topic,@subTopic,GETDATE()')");
可能需要:
insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");
看起来你有一些额外的单引号。
答案 1 :(得分:2)
DECLARE @TopicsID int
这会处理“错误的语法”并声明标量变量。
我相信您需要删除三个VALUES
周围的单引号。这导致它认为您只提供了一个VALUE
而不是三个。
答案 2 :(得分:1)
尝试
insertCommand.AppendLine
SQL看
DECLARE @TopicsID intINSERT INTO Topics(Theme,Topics,Date) ...
您需要分开不同的陈述
答案 3 :(得分:1)
你在最后一行的单引号是错误的 - 它把它全部转到一个字符串上:
更改
insertCommand.Append("VALUES('@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0')");
到
insertCommand.Append("VALUES(@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0)");