C# 在SQL参数中格式化源列中的字符串
我试图弄清楚,在向SqlCommand添加参数时,是否可以格式化sourceColumn中的字符串 像这样的C# 在SQL参数中格式化源列中的字符串,c#,sql,asp.net,parameters,sqlcommand,C#,Sql,Asp.net,Parameters,Sqlcommand,我试图弄清楚,在向SqlCommand添加参数时,是否可以格式化sourceColumn中的字符串 像这样的 cmd.Parameters.Add("@sdate", SqlDbType.VarChar, 25, "start_date"); 如果可能的话,我不知道语法会是什么样子。比如: cmd.Parameters.Add("@sdate", SqlDbType.VarChar, 25, string.Format("{0} {1}", "start_date", "12:00 AM"))
cmd.Parameters.Add("@sdate", SqlDbType.VarChar, 25, "start_date");
如果可能的话,我不知道语法会是什么样子。比如:
cmd.Parameters.Add("@sdate", SqlDbType.VarChar, 25, string.Format("{0} {1}", "start_date", "12:00 AM"));
我敢肯定这是行不通的,因为这样它只会查找一个列名“start_date 12:00 AM”
希望我所做的一切都有意义
谢谢 我还没有找到这个问题的答案,但我采用的一种解决方案是在将日期放入数据表之前格式化日期。这样,我就可以按原样直接插入列值,并且在插入过程中不需要进行任何格式设置。您要向哪些内容添加该参数(基于查询的命令,执行存储过程等)?我猜是输入了varchar(25)(因为你是这么说的)。你只是在问“我可以把一个包含函数的表达式,比如string.Format作为参数的值吗?”如果可以,回答“是”。我不理解你说的“我肯定这行不通”的话。为什么不呢?您试过了吗?这是SqlAdapter的一个列源参数。在第一行代码中,假设查询的源是一个DataTable,其列名为“start_date”。在该数据表中,没有名为“start_date 12:00 AM”的列,如果我使用第二种方法,它将查找该列,这肯定不起作用。抱歉,我将参数添加到了参数中。在我的头脑中添加错误。是否要将“开始日期”的值设置为“开始日期12:00 AM”?。然后添加参数并立即将值设置为字符串。Format Expression我可能误解了您的问题,但为了澄清,我正在尝试将时间组件添加到包含在start_date列中的值中。例如,如果值为“7/19/2018”,我想将时间附加为“7/19/2018 12:00 AM”,请看: