C# 在INSERT查询中使用GETDATE()可以将该日期返回给我吗?
我使用以下代码将一行插入数据库,并使用C# 在INSERT查询中使用GETDATE()可以将该日期返回给我吗?,c#,sql,sql-server,C#,Sql,Sql Server,我使用以下代码将一行插入数据库,并使用GETDATE()设置日期。如果不运行第二个单独的查询来提取该日期,在同一个查询中是否有方法让它返回刚刚插入的日期 int resultCompletedDate = 0; using (SqlConnection connect = new SqlConnection(connectionString)) { string updateQueryCompletedDate = @"UPDATE Conversions
GETDATE()
设置日期。如果不运行第二个单独的查询来提取该日期,在同一个查询中是否有方法让它返回刚刚插入的日期
int resultCompletedDate = 0;
using (SqlConnection connect = new SqlConnection(connectionString))
{
string updateQueryCompletedDate = @"UPDATE Conversions
SET CompletedDate = GETDATE(),
Status = 'Completed'
WHERE ID = @ID";
SqlCommand command1 = new SqlCommand(updateQueryCompletedDate, connect);
command1.Parameters.AddWithValue("ID", item1.ID);
connect.Open();
resultCompletedDate = Convert.ToInt32(command1.ExecuteScalar());
connect.Close();
}
使用批处理语句作为命令文本。您不需要逐字记录字符串,因为您没有使用反斜杠或双引号
DECLARE @completedDate datetime = GETDATE();
UPDATE Conversions SET CompletedDate = @completedDate, Status = 'Completed' WHERE Id = @id;
SELECT @completedDate;
不要使用Convert.ToInt32
,只需使用Convert.ToDateTime
Protip:使用using
而不是手动关闭连接,因为如果ExecuteScalar
引发异常,此时您的连接将不会关闭:
using(SqlConnection c = new SqlConnection( ... ))
using(SqlCommand cmd = c.CreateCommand()) {
cmd.CommandText = "DECLARE @completedDate...";
cmd.Parameters.AddWithValue("@id", item1.ID);
c.Open();
DateTime completedDate = Convert.ToDateTime( cmd.ExecuteScalar() );
return completedDate;
}
使用批处理语句作为命令文本。您不需要逐字记录字符串,因为您没有使用反斜杠或双引号
DECLARE @completedDate datetime = GETDATE();
UPDATE Conversions SET CompletedDate = @completedDate, Status = 'Completed' WHERE Id = @id;
SELECT @completedDate;
不要使用Convert.ToInt32
,只需使用Convert.ToDateTime
Protip:使用using
而不是手动关闭连接,因为如果ExecuteScalar
引发异常,此时您的连接将不会关闭:
using(SqlConnection c = new SqlConnection( ... ))
using(SqlCommand cmd = c.CreateCommand()) {
cmd.CommandText = "DECLARE @completedDate...";
cmd.Parameters.AddWithValue("@id", item1.ID);
c.Open();
DateTime completedDate = Convert.ToDateTime( cmd.ExecuteScalar() );
return completedDate;
}
使用批处理语句作为命令文本。您不需要逐字记录字符串,因为您没有使用反斜杠或双引号
DECLARE @completedDate datetime = GETDATE();
UPDATE Conversions SET CompletedDate = @completedDate, Status = 'Completed' WHERE Id = @id;
SELECT @completedDate;
不要使用Convert.ToInt32
,只需使用Convert.ToDateTime
Protip:使用using
而不是手动关闭连接,因为如果ExecuteScalar
引发异常,此时您的连接将不会关闭:
using(SqlConnection c = new SqlConnection( ... ))
using(SqlCommand cmd = c.CreateCommand()) {
cmd.CommandText = "DECLARE @completedDate...";
cmd.Parameters.AddWithValue("@id", item1.ID);
c.Open();
DateTime completedDate = Convert.ToDateTime( cmd.ExecuteScalar() );
return completedDate;
}
使用批处理语句作为命令文本。您不需要逐字记录字符串,因为您没有使用反斜杠或双引号
DECLARE @completedDate datetime = GETDATE();
UPDATE Conversions SET CompletedDate = @completedDate, Status = 'Completed' WHERE Id = @id;
SELECT @completedDate;
不要使用Convert.ToInt32
,只需使用Convert.ToDateTime
Protip:使用using
而不是手动关闭连接,因为如果ExecuteScalar
引发异常,此时您的连接将不会关闭:
using(SqlConnection c = new SqlConnection( ... ))
using(SqlCommand cmd = c.CreateCommand()) {
cmd.CommandText = "DECLARE @completedDate...";
cmd.Parameters.AddWithValue("@id", item1.ID);
c.Open();
DateTime completedDate = Convert.ToDateTime( cmd.ExecuteScalar() );
return completedDate;
}
您还可以使用:
您还可以使用:
您还可以使用:
您还可以使用:
为什么不将日期传递给查询呢
DateTime completeDate = DateTime.Now;
using (SqlConnection connect = new SqlConnection(connectionString))
{
string updateQueryCompletedDate = @"UPDATE Conversions
SET CompletedDate = @CompleteDate,
Status = 'Completed'
WHERE ID = @ID";
SqlCommand command1 = new SqlCommand(updateQueryCompletedDate, connect);
command1.Parameters.AddWithValue("ID", item1.ID);
command1.Parameters.AddWithValue("CompleteDate",completeDate);
connect.Open();
command1.ExecuteNonQuery();
connect.Close();
}
唯一的区别是客户端和服务器之间可能存在的时区差异。为什么不将日期传递给查询
DateTime completeDate = DateTime.Now;
using (SqlConnection connect = new SqlConnection(connectionString))
{
string updateQueryCompletedDate = @"UPDATE Conversions
SET CompletedDate = @CompleteDate,
Status = 'Completed'
WHERE ID = @ID";
SqlCommand command1 = new SqlCommand(updateQueryCompletedDate, connect);
command1.Parameters.AddWithValue("ID", item1.ID);
command1.Parameters.AddWithValue("CompleteDate",completeDate);
connect.Open();
command1.ExecuteNonQuery();
connect.Close();
}
唯一的区别是客户端和服务器之间可能存在的时区差异。为什么不将日期传递给查询
DateTime completeDate = DateTime.Now;
using (SqlConnection connect = new SqlConnection(connectionString))
{
string updateQueryCompletedDate = @"UPDATE Conversions
SET CompletedDate = @CompleteDate,
Status = 'Completed'
WHERE ID = @ID";
SqlCommand command1 = new SqlCommand(updateQueryCompletedDate, connect);
command1.Parameters.AddWithValue("ID", item1.ID);
command1.Parameters.AddWithValue("CompleteDate",completeDate);
connect.Open();
command1.ExecuteNonQuery();
connect.Close();
}
唯一的区别是客户端和服务器之间可能存在的时区差异。为什么不将日期传递给查询
DateTime completeDate = DateTime.Now;
using (SqlConnection connect = new SqlConnection(connectionString))
{
string updateQueryCompletedDate = @"UPDATE Conversions
SET CompletedDate = @CompleteDate,
Status = 'Completed'
WHERE ID = @ID";
SqlCommand command1 = new SqlCommand(updateQueryCompletedDate, connect);
command1.Parameters.AddWithValue("ID", item1.ID);
command1.Parameters.AddWithValue("CompleteDate",completeDate);
connect.Open();
command1.ExecuteNonQuery();
connect.Close();
}
唯一的区别是客户端和服务器之间可能存在的时区差异。Cleaver,+1。OP也可以使用@RubensFarias,我认为
输出实际上更干净。请将其作为一个新的答案提交:)一个更干净的选择是在过程中使用此批处理sql代码,而不是使用多个sql语句。@Rahul我不同意。我觉得不应该将存储过程用于简短或琐碎的数据库操作。您可以这样做,但我看不出通过网络发送长文本SQL查询有任何好处。Cleaver,+1。OP也可以使用@RubensFarias,我认为输出实际上更干净。请将其作为一个新的答案提交:)一个更干净的选择是在过程中使用此批处理sql代码,而不是使用多个sql语句。@Rahul我不同意。我觉得不应该将存储过程用于简短或琐碎的数据库操作。您可以这样做,但我看不出通过网络发送长文本SQL查询有任何好处。Cleaver,+1。OP也可以使用@RubensFarias,我认为输出实际上更干净。请将其作为一个新的答案提交:)一个更干净的选择是在过程中使用此批处理sql代码,而不是使用多个sql语句。@Rahul我不同意。我觉得不应该将存储过程用于简短或琐碎的数据库操作。您可以这样做,但我看不出通过网络发送长文本SQL查询有任何好处。Cleaver,+1。OP也可以使用@RubensFarias,我认为输出实际上更干净。请将其作为一个新的答案提交:)一个更干净的选择是在过程中使用此批处理sql代码,而不是使用多个sql语句。@Rahul我不同意。我觉得存储过程不应该用于简短或琐碎的数据库操作。你可以,但我看不出通过网络发送长文本SQL查询有任何好处。顺便说一句,这是一个更新查询:)哈哈,哦!我错过了,顺便说一句,这是一个更新查询:)哈哈哦!我错过了,顺便说一句,这是一个更新查询:)哈哈哦!我错过了,顺便说一句,这是一个更新查询:)哈哈哦!我错过了在这种特殊情况下,不同的时区可能是一个问题在这种特殊情况下,不同的时区可能是一个问题在这种特殊情况下,不同的时区可能是一个问题在这种特殊情况下,不同的时区可能是一个问题