我正在使用ASP.NET Webforms工作。我目前正在进行该项目的更新部分。我想有这样一个数据:如何在SQL Server中使用UPDATE
时钟
ID | EmpID | Date | Clock IN | Morning IN | Morning OUT | Clock OUT
1 | 1 | 07/20/16 | 07:00 am | 09:00 am | 09:15 am | 11:00 am
2 | 1 | 07/21/16 | 08:00 am | 10:00 am | 10:15 am | 12:00 pm
,但我得到这个代替
时钟
ID | EmpID | Date | Clock IN | Morning IN | Morning OUT | Clock OUT
1 | 1 | 07/20/16 | 07:00 am | 10:00 am | 10:15 am | 12:00 pm
2 | 1 | 07/21/16 | 08:00 am | 10:00 am | 10:15 am | 12:00 pm
下面是代码:
插入
protected void cmdCIN_Click(object sender, EventArgs e)
{
myConnection.Open();
Response.Write("Welcome!");
string query = "Insert into [dbo].[Clock] (EmpID,Date,ClockIN) Values ((select EmpID from Emp_Record where ID = @user), @date, @cin)";
SqlCommand insertCommand = new SqlCommand(query, myConnection);
insertCommand.Parameters.AddWithValue("@user", txtID.Text);
insertCommand.Parameters.AddWithValue("@date", DateTime.Now.ToShortDateString());
insertCommand.Parameters.AddWithValue("@cin", DateTime.Now.ToLongTimeString());
insertCommand.ExecuteNonQuery();
myConnection.Close();
}
UPDATE
protected void cmdAMIN_Click(object sender, EventArgs e)
{
Response.Write("You have started your first break");
myConnection.Open();
string query = "UPDATE Clock SET MorningIN = @AMIN FROM Emp_Record INNER JOIN Clock ON Em_Record.EmpID = Clock.LeadID;";
SqlCommand insertCommand = new SqlCommand(query, myConnection);
insertCommand.Parameters.AddWithValue("@AMIN", DateTime.Now.ToLongTimeString());
myConnection.Close();
}
我怎么使用update命令,以便其他的数据不会影响到第一个?
如果UPDATE语句中没有WHERE子句,则将表中的每条记录更新为相同的值。您需要添加_WHERE ID = @UserID_ – Steve
请小心。像这样在pass through sql中使用AddWithValue可能会导致不正确的数据类型。特别是使用日期时间值。 http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/明确指定数据类型会更好(或者更好的是使用存储过程)。 –
当我使用排在早上的地方为空时。我错过了什么吗? –