1
    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)");

私はこれを得る:

キーワード「INTO」付近の構文が正しくありません。スカラー変数「@TopicsID」を宣言する必要があります。スカラー変数「@TopicsID」を宣言する必要があります。

4

4 に答える 4

2

最初に気付くのは次のとおりです。

insertCommand.Append("VALUES('@topic,@subTopic,GETDATE()')");

次のようにする必要があるかもしれません:

insertCommand.Append("VALUES(@topic,@subTopic,GETDATE())");

そこに余分な一重引用符があるようです。

于 2011-06-07T10:30:03.477 に答える
2

にセミコロンが必要ですDECLARE @TopicsID int

これにより、「不正な構文」とスカラー変数の宣言が処理されます。

また、 three を囲む一重引用符を削除する必要があると思いますVALUES。これにより、3 つではなく 1 つだけを指定したと見なされますVALUE

于 2011-06-07T10:30:33.557 に答える
1

最後の行の単一引用符は間違っています-すべてを1つの文字列に変換します:

変化する

  insertCommand.Append("VALUES('@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0')");

insertCommand.Append("VALUES(@uniqueIdentifier,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0)");
于 2011-06-07T10:32:41.917 に答える
1

試す insertCommand.AppendLine

SQL が見る

DECLARE @TopicsID intINSERT INTO Topics(Theme,Topics,Date) ...

個別のステートメントを区切る必要があります

于 2011-06-07T10:30:46.690 に答える