c# - 如何使用c#在参数中传递转换表达式?

标签 c# tsql

我有一个使用字符串生成器在 C# 代码中创建的临时插入语句。

var str = new StringBuilder(string.Empty);
str.Append(" INSERT INTO Table_01 ( ID,");
        str.Append("Comment,");
        str.Append("DateTimeStamp,");
str.Append(" ) VALUES( ");
        str.Append("'" + Guid.NewGuid() + "',");
        str.Append("'" + CaseComment + "',");
        str.Append("CONVERT(DATETIME, '" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "',120)");

我已将此代码转换为 SqlParameter:-

var str = INSERT INTO Table_01(ID,Comment,DateTimeStamp)     
VALUES(@ID,@Comment,@DateTimeStamp)
using (var cmd = new SqlCommand(str, con))
{
cmd.Parameters.Add(new SqlParameter("@ID", Guid.NewGuid()));
cmd.Parameters.Add(new SqlParameter("@Comment", CaseComment));
cmd.Parameters.Add(new SqlParameter("@DateTimeStamp", ?????));
cmd.ExecuteNonQuery();
}

在传递 DateTime 之前,我必须确保格式等于“convert(varchar, getdate(), 120) -- 2016-10-23 06:10:55(24h) "就像在 TSQL 中一样。 我将如何使用 TSQL Convert 表达式传递 @datetime 参数?

最佳答案

您可以使用Convert 类。尝试这样的事情,

cmd.Parameters.Add(new SqlParameter("@DateTimeStamp", Convert.ToDateTime(DateTime.Now)));

cmdItemSearch.Parameters.Add(new SqlParameter("@EndDate", SqlDbType.DateTime)); 
cmdItemSearch.Parameters["@EndDate"].Value = DateTime.Now;

关于c# - 如何使用c#在参数中传递转换表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200175/

相关文章:

sql - 在存储过程中使用 CASE 语句

sql - 如何删除 SQL Server 中的多行

sql - 选择表中的人员并排除妻子,但合并他们的名字

sql - 为什么交叉应用会使查询变慢?

sql-server - Sql Server - 从 VLT(非常大的表)中删除列

c# - 将数据存储到 SQL,编码与否?

c# - 方法应该抛出异常但它没有

c# - 四舍五入和填充小数

c# - 读取时重构 xml

c# - 在字典中添加新项目或更新现有项目的方法