如何使用asp.net将datetime参数传递给存储过程

时间:2018-06-06 11:46:04

标签: c# sql asp.net datetime-select

所以我有一个存储过程,我在datetime params传递也返回数据...问题是我想传递默认日期和时间但不知道如何做到这一点,因为我只能看到datetime.now ......这是我的代码...

public void RefreshLabeldata(int selectedProduct, DateTime shiftStart, DateTime shiftEnd)
{
    BizManager biz = new BizManager();

    DataSet dt = new DataSet();
    dt = biz.GetTotalPacked(
        shiftStart 
      , shiftEnd
      , selectedProduct).DataSet;
    labeltotal.Text = dt.Tables[0].Rows[0]["TotalPacked"].ToString();
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Refreshdata(214, DateTime.Today, DateTime.Today.AddDays(1).AddMinutes(-1));
        BindDropDownList();
        RefreshLabeldata(214, DateTime.Today , DateTime.Today);
        ...
    }
...
}

我想传递我的sql存储过程接受的日期,即shiftStart 2016-06-06 06:00 shiftEnd 2016-06-06 14:00。

我知道我的约会时间都错了:)我仍在努力解决这个问题。

3 个答案:

答案 0 :(得分:0)

如果您正在学习如何将DateTime作为参数传递,那么请浏览DateTime文档。 Here

DateTime.Today将包含类似6/6/2018 12:00:00 AM的值。如果您知道确切的日期和时间,则可以使用DateTime.Today代替DateTime.ParseExact(dateString, format, provider)

其中 dateString 将是您的字符串格式的日期。

格式将包含日期时间格式,例如"yyyy-MM-dd"

提供商将是cultureInfo。有关详细信息MSDN

总结一下,试试

RefreshLabeldata(214, DateTime.ParseExact("2018-06-06", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture) , DateTime.ParseExact("2018-06-07", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture))

答案 1 :(得分:0)

要使用您所请求格式的当前日期,请尝试以下操作:

 Refreshdata(214, DateTime.Now.ToString("yyyy-MM-dd HH:mm"), DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm"));

答案 2 :(得分:0)

我认为这对你有帮助......

String.Format("{0:yyyy-MM-dd hh mm}", YourDate)

请参阅此链接:http://www.csharp-examples.net/string-format-datetime/