SQL 服务器查询 Insert into select 和新数据

SQL Server query Insert into select and new data

我需要更正我在 C# 和 SQL 服务器中的查询。

我有一个名为 LoggedIn 的 table,其中包含名称、密码和时钟列。我希望它插入到 table 中,其中名称和密码来自另一个 table 并且 clockin 现在是当前时间。

string belepve = "INSERT INTO LoggedIn VALUES (SELECT name, password FROM Login WHERE password =" + Kod.login1 +" ,@MyDate";

SqlCommand command4 = new SqlCommand(belepve, con);

command4.Parameters.AddWithValue("@MyDate", DateTime.Now);

然后我只是执行查询。

这里有多个问题。

首先是第二个参数也应该为SqlParameter

其次,您在末尾缺少括号。

第三,您需要指定值应进入的列名称 LoggedIn table.

您的工作代码类似于:

string belepve = @"INSERT INTO LoggedIn (name,password,LoginDate) 
                          VALUES (SELECT name,password,@MyDate 
                                  FROM Login 
                                  WHERE password =@Password
                                  )";

SqlCommand command4 = new SqlCommand(belepve, con);

 command4.Parameters.AddWithValue("@MyDate", DateTime.Now);
 command4.Parameters.AddWithValue("@Password", Kod.login1);

假设您在 LoggedIn table 中有名为 namepasswordLoginDate 的列,您可能需要调整列名你实际上在 table.

如果您已经选择了相同数量的列,那么您可以像下面这样更简单地进行操作:

SELECT name,password,@MyDate 
INTO LoggedIn
FROM Login 
WHERE password =@Password

但是您需要注意选择列的顺序,否则值可能会出现在与预期不同的列中。 希望对你有帮助。