将文本框中的字符串转换为sql

时间:2017-06-21 06:29:49

标签: c# asp.net asp.net-mvc linq datetime

美好的一天。 我是asp.net/c#/linq/etc中的新手,我试图弄清楚这一切。 但它需要做一个小项目。

在我看来,我有一个带有日期时间/字符串值的表,我需要将这些值插入到mssql数据库中。

在视图上我有几个Html.TextBox' es。通过单击按钮,TextBox将按当前日期时间填充。 查看标题(JS):

   <script type="text/javascript">
        function setDate(boxID) {
            var dateNow = new Date();
            var dd = dateNow.getDate();
            var mm = dateNow.getMonth() + 1;
            var yy = dateNow.getFullYear();
            var hh = dateNow.getHours();
            var MM = dateNow.getMinutes();
            var ss = dateNow.getSeconds();
            if (dd < 10) { dd = '0' + dd }
            if (mm < 10) { mm = '0' + mm }
            if (MM < 10) { MM = '0' + MM }
            if (ss < 10) { ss = '0' + ss }
            var today = dd + '-' + mm + '-' + yy + ' ' + hh + ':' + MM + ':' + ss;
            document.getElementById(boxID).value = today;
        }
    </script>

查看正文:

<div class="divTableCell">
   @Html.TextBox("p1_t1")
   <input type="button" value="OK" onclick='setDate("p1_t1")' />
</div>
<div class="divTableCell">
    @Html.TextBox("p1_notice")
</div>
<button id="result "type="submit">Insert data</button>

单击最后一个按钮,我试图将此值插入外部数据库。表包含列p1_notice varchar(250)和p1_t1 datetime;

控制器:

public ActionResult EntranceInspection()
{
    return View();
}

EntranceInspectionTableDataContext d = new EntranceInspectionTableDataContext();

public ActionResult EntranceInspectionResult()
{

    EntranceInspection s = new EntranceInspection();
    s.p1_notice = Request["p1_notice"]; // to SQL - ok
    s.p1_t1 = Request["p1_t1"]; // error convert string to datetime
    d.EntranceInspection.InsertOnSubmit(s);
    d.SubmitChanges();
    return View("EntranceInspection");
}

是否有任何可接受的方法将文本框中的值转换为datetime并插入datetime-column?或者我需要在开始时做一些不同的事情?

THX

3 个答案:

答案 0 :(得分:0)

您应该将文本值输入到日期时间,如下所示。

s.p1_t1 = Convert.ToDateTime(Request["p1_t1"]);

这将帮助您在数据库中插入日期时间值而不会出错。

答案 1 :(得分:0)

您必须将文本值转换为日期时间:

s.p1_t1 = Convert.ToDateTime(Request["p1_t1"]);

这将帮助您在数据库中插入日期时间值而不会出现错误。但是,如果在数据库中该字段不是nullabe,那么pin_t1没有空值可能对您有用。 如果它是nullabe,您应该插入datemin值或其他符合您业务要求的值。

答案 2 :(得分:-2)

您可以尝试以下代码

 public ActionResult EntranceInspectionResult()
    {
        EntranceInspection s = new EntranceInspection();
        s.p1_notice = Request["p1_notice"]; // to SQL - ok
        s.p1_t1 = Convert.ToDateTime(Request["p1_t1"]); 
        d.EntranceInspection.InsertOnSubmit(s);
        d.SubmitChanges();
        return View("EntranceInspection");
    }