Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从一个表插入到另一个表时出现问题!_C#_Asp.net_Sql - Fatal编程技术网

C# 从一个表插入到另一个表时出现问题!

C# 从一个表插入到另一个表时出现问题!,c#,asp.net,sql,C#,Asp.net,Sql,我想将Users表UsersID插入Threads表。但是抛出了一个异常,表示不存在名为UsersID的列。我认为它确实将u.UserID作为参数并将其放入线程UsersID中,因为我在线程中有一个名为UsersID的列。有解决办法吗 StringBuilder insertCommand = new StringBuilder(); insertCommand.Append("DECLARE @TopicsId int; INSERT INTO Topics(Theme,To

我想将Users表UsersID插入Threads表。但是抛出了一个异常,表示不存在名为UsersID的列。我认为它确实将u.UserID作为参数并将其放入线程UsersID中,因为我在线程中有一个名为UsersID的列。有解决办法吗

    StringBuilder insertCommand = new StringBuilder();

    insertCommand.Append("DECLARE @TopicsId int; 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,Views,Replies,PageNumber)");
    insertCommand.Append(" SELECT u.UsersID,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0,0,0,FLOOR(Count(t.TopicsID)/20)"); // i think the problem is in the u.UserID in this line
    insertCommand.Append(" FROM Threads AS d ");
    insertCommand.Append(" INNER JOIN Topics AS t ON d.TopicsID=t.TopicsID");
    insertCommand.Append(" INNER JOIN Users AS u ON u.UsersID=t.UsersID");
INSERT需要VALUES关键字


我在语句中没有看到它

您是否将UsersID和UserID列拼错了

如果您可以通过SQL Management Studio直接访问数据库,请尝试仅运行“选择并正确格式化SQL”命令,以便它显示有问题的行号,例如

Insert into threads(....)
Values (blablabla,blablabla)

为什么要包含前三个insertCommand.Append行?这些与随后的五行有任何关系吗?例如@questionTitle来自何处?它们工作正常。。questionTitle来自threads表,我向其中输入用户想要的内容基于INSERT-into-Topics语句,我假定您没有任何Topics.UsersID列。可能,t.UsersID应该是d.UsersID。是的,是uniqueuserIdentifier中的错误。-我更改了算法。现在它起作用了。无论如何,谢谢。@Will:在大多数情况下,它们不是必须的,无论如何,在SQL Server中也不是。不过,为了清晰起见,我倾向于把它们放在各处。事实并非如此。带有嵌套select的insert语句在没有values关键字的情况下可以正常工作。检查为什么我会得到那个异常?。为什么它看不到我有UsersID
SELECT 
  u.UsersID,@TopicsID,GETDATE(),@questionTitle,@questionParagraph,0,0,0,FLOOR(Count(t.TopicsID)/20))
FROM 
  Threads AS d
INNER JOIN 
  Topics AS t ON d.TopicsID=t.TopicsID
INNER JOIN 
  Users AS u ON u.UsersID=t.UsersID