你的time已经转为string,在你的sqlstr的time两边也加上单引号

解决方案 »

  1.   

    如果按你原来的想法来改, 你是缺少了单引号:
    但按比较正规的做法, 还是不合适。
    正规的做法不应该拼sql,而是参数化, 这样不会有注入的风险, 也不会有你那种拼接容易出错的事件发生:string connString = "xxx"; //连接串,你自己改
    string sql = "insert into GuestBookInfo(Name, Detail, Time) values(@Name, @Detail, @Time)";
    try
    {
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.AddWithValue("@Name", this.name0.Text.Trim());
            cmd.Parameters.AddWithValue("@Detail", this.comment0.Text.Trim());
            cmd.Parameters.AddWithValue("@Time", time);
            cmd.ExecuteNonQuery();
        }
        Response.Write("<script>alert('success')</script>");
    }
    catch (Exception ex)
    {
        Response.Write("<script>alert('failed!"+ex.Message+"')</script>");
    }
      

  2.   

    time前面少个单引号,可以打断点把你的sqlstr值放到数据库中跑看看,写法上参数化比较好