c# - 在 SQL C# 的 SELECT 语句中使用参数
问题描述
我有以下 T-SQL 查询在 SSMS 中正常工作。
DECLARE @StartDTTM DATE = '2020-04-25'
DECLARE @EndDTTM DATE = '2020-05-02'
CREATE TABLE #Temp
(
D_Date DATE,
)
WHILE @StartDTTM <= @EndDTTM
BEGIN
INSERT INTO #Temp
SELECT @StartDTTM AS D_DATE
SET @StartDTTM = DATEADD(DAY, 1, @StartDTTM)
END
SELECT * FROM #Temp
DROP TABLE #Temp
但是,当从 C# & 调用时System.Data.SqlClient
,所有列都已硬编码 startdate 并且迭代日期没有出现。
using (SqlCommand cmd = new SqlCommand(QueryText))
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
SqlParameter param;
param = new SqlParameter("@StartDTTM", '2020-04-25');
cmd.Parameters.Add(param);
param = new SqlParameter("@EndDTTM", '2020-05-02');
cmd.Parameters.Add(param);
using (SqlDataAdapter da = new SqlDataAdapter())
{
da.SelectCommand = cmd;
da.Fill(ds);
};
};
编辑 1:我在查询中有额外的逻辑。我正在尝试获取位于两个日期列之间的迭代日期表中的值,基本上是迭代日期值的快照。希望能帮助到你
编辑 2:当通过 SQL 命令传递时,@StartDTTM
将更改为值,然后将查询传递给 SQL。因此,这些行都是开始日期。有解决办法吗?
解决方案
推荐阅读
- javascript - 如何触发列表元素的点击事件?
- google-sheets - Highcharts:当内部空间不足时,外部数据标签,使用谷歌电子表格
- java - Vaadin 主题文件行分隔符
- corda - 无法在 Corda 节点中运行流
- python - 在 Python 3 和 jQuery DataTables 中过滤查询集
- c# - FileSystemWatcher 并从 OnChange 方法触发 Form 方法
- python - 无法删除日期时间中的时间戳
- sql - 如何使用不同的约束在联合选择中部分共享参数值?
- reactjs - 反应useState,输入值不更新
- jquery - 导出到文件时忽略 Jquery Datatables 中的标头中的 HTML