在c# ASP.Net中查找当前星期几

3
我想在c# ASP.Net中查找当前星期几,例如:
System.DateTime.Now.DayOfWeek.ToString(); 

这段代码在控制台应用程序中运行良好,但当我尝试将此行的值存储在ASP.Net网站中的字符串中时,它什么都没有返回。 有人能帮忙吗?
StringBuilder message = null;

protected void Page_Load(object sender, EventArgs e)
{
    var dayofweek = System.DateTime.Now.DayOfWeek.ToString();
    String conn = "Data Source=.;Initial Catalog=OCSI;Integrated Security=True";//conne
    SqlConnection sqlconne = new SqlConnection(conn);

    string selectSQL = "SELECT lec FROM schedule WHERE [day]='" + dayofweek +"'";
    SqlCommand cmd = new SqlCommand(selectSQL, sqlconne);
    SqlDataReader reader = null;
    try
    {
        sqlconne.Open();
        reader = cmd.ExecuteReader();
        message = new StringBuider(); 
        while (reader.Read())
        {
            message.Append(reader["lec"].ToString());
           //question what are you using message for ...?
            Label3.Text = dayofweek;
        }
        reader.Close();
    }
    catch (Exception ex)
    {
        Response.Write(ex.Mesage);
    }
    finally
    {
        sqlconne.Close();
        // you neeed to Dispose of all other objects here too
        // StringBuilder Object
        // SqlDataReader Object
        //SqlCommand  Object.. 
        //Look into wrapping your Connection / Command Sql Dataobject around a using() {}
    }

我希望在SQL查询的where子句中使用当前日期,以从数据库表中获取与当天相关的数据。我使用了变量作为
 protected void Page_Load(object sender, EventArgs e)
 {
    String conn = "Data Source=.;Initial Catalog=OCSI;Integrated Security=True";//conne
    SqlConnection sqlconne = new SqlConnection(conn);

    var testDay = DateTime.Now.DayOfWeek.ToString();

    // string selectSQL = "SELECT lec FROM schedule WHERE [day]='" + dayofweek +"'";
    string selectSQL = string.Format("SELECT lec FROM schedule WHERE [day]= {0}", testDay);
    SqlCommand cmd = new SqlCommand(selectSQL, sqlconne);
    SqlDataReader reader;
    try
    {
        sqlconne.Open();
        reader = cmd.ExecuteReader();

        while (reader.Read())
        {
            message += reader["lec"].ToString();

            Label3.Text = testDay;
        }
        reader.Close();
    }
    catch
    { 
    }
    finally
    {
        sqlconne.Close();
    }

5
请发布你的代码,因为它不能正常工作。 - AaronS
你想要星期几的名称(例如“星期三”)还是数字?您可以通过以下方式获取名称:dateValue.ToString("dddd"))。http://msdn.microsoft.com/en-us/library/bb762911.aspx - Tim Schmelter
请检查我粘贴的代码。看看第2行和第6行的dayofweek字符串。 - mhaseebn
“schedule”表中的“day”列包含什么内容? - Oded
@AaronS - 为什么?那会有什么作用?我不明白将字段更改为本地变量会有任何区别。 - Oded
显示剩余4条评论
5个回答

5

这对我来说运行良好。

此处输入图片描述


对我来说也运行良好...也许他没有做正确的事情。 - MethodMan
@Skylark555:是的,它来自一个asp.net页面。 - Shyju
Skylark555,你确定你理解我们在这里展示的简单语法吗?那段代码应该可以在不管是asp.net、控制台、winform、WCF等任何环境下都能正常工作...... - MethodMan
是的,我做得很好,但有时候像这样的小事情会让我感到困惑! - mhaseebn
@Skylark555:使用断点,查看变量中是否有值。 - Shyju
好的,首先将dayofweek作为参数传递给select语句,请查看下面的示例。 - MethodMan

3
网页是指公共、静态或属性定义的值。
如果您编写:
var testDay = DateTime.Now.DayOfWeek.ToString();

结果将会是 "星期五"。

1
@DJKRAZE。星期五意味着啤酒!;) - NoWar
Dmitry,现在还不是啤酒时间...或者伏特加时间...哈哈,那得等到周五晚上了,这就是快乐时光。 - MethodMan
你不能在方法体外使用 var。 - FastAl
我建议您更新帖子中的代码,包括您所做的工作更改,即编译版本,并从那里重新开始。这个问题不应该花这么长时间。 - MethodMan
好的,在数据库中,字段 [day] 的真实名称是什么? - MethodMan
显示剩余9条评论

0

还可以尝试将 SQL 字符串更改为这个

string selectSQL = 
   string.Format("SELECT lec FROM schedule WHERE [day]= {0}", dayofweek);

0
如果在删除 where 子句后一切正常运行,那么请将 Where 子句更改为类似以下内容的语句。
   string selectSQL = string.Format("SELECT lec FROM schedule WHERE dbo.schedule.day = {0} ", testDay);

如果day是一个保留字,我也会将字段名称更改为DayName或其他类似的名称。请查看此链接以获取SQL中的保留字Reserved SQL Words


0

作为整数值(系统将星期日设置为0)=

int day = (int)DateTime.Now.DayOfWeek;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接