Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对LINQ中的值应用子字符串_C#_Asp.net_Visual Studio_Linq_Linq To Sql - Fatal编程技术网

C# 对LINQ中的值应用子字符串

C# 对LINQ中的值应用子字符串,c#,asp.net,visual-studio,linq,linq-to-sql,C#,Asp.net,Visual Studio,Linq,Linq To Sql,我使用LINQ绑定下拉列表值,如下所示 var varResult = (from OppData in dtOpp.AsEnumerable() select new { TEXT = OppData.Field<object>(sColName), //column value VALUE = sColName // column Name }

我使用LINQ绑定下拉列表值,如下所示

var varResult =
        (from OppData in dtOpp.AsEnumerable()
          select new
          {
           TEXT = OppData.Field<object>(sColName), //column value
           VALUE = sColName // column Name
           }
        ).Distinct();
然后,如下图所示绑定下拉列表

 ddlTemp.DataSource = dtTemp;
 ddlTemp.DataTextField = "TEXT";
 ddlTemp.DataValueField = "VALUE";
 ddlTemp.DataBind();
现在下拉列表为其中一列绑定的值,Employee Joining date的格式为08/09/2011~Y,因为它直接从数据库获取绑定。我希望在日期上应用子字符串,以便其格式为2011年9月8日。如何在LINQ查询中应用子字符串?

在查询期间,将LINQ查询中匿名类型中的文本字段用作字符串和格式值:

var varResult =
    (from OppData in dtOpp.AsEnumerable()
      select new
      {
       TEXT = OppMilestonedate.Field<object>("EMP_JOIN_DATE") == null ? null : OppMilestonedate.Field<object>("EMP_JOIN_DATE").ToString().Substring(0, 10), 
       VALUE = sColName 
      } 
    ).Where(x => x.TEXT != null).Distinct(); 

像这样的东西。此外,您还可以提供更有意义的日期表示格式,例如:2011年8月9日等。

感谢各位的评论,但我只希望将更改应用于一列。这将为除Employee Joining Date未收到您的上一条评论之外的列引发错误。据我所知,下拉列表中只有一列,从文本字段中获取文本,从值字段中获取值。我错过了什么?关于哪些列正在讨论?我们有多个字段,例如EmpName、EmpAge。更改只对员工加入日期有效。如何检查?明白了。所有字段都使用相同的方法。在这种情况下,或者您需要添加一些转换器类,该类将定义它是否是DateTime对象,然后执行以下转换,否则您可以将if语句放入DateTime类型,并以以下方式进行额外转换:varResult=varResult.Selectx=>new{TEXT=convert.ToDateTimex.TEXT.ToShortDateString,x.VALUE=VALUE};同样,如果检索到的对象是DateTime类型,则尝试使用DropDownList控件的DataTextFormatString属性,而不获取最后一条注释。你能修改代码吗
var varResult =
    (from OppData in dtOpp.AsEnumerable()
      select new
      {
       TEXT = OppMilestonedate.Field<object>("EMP_JOIN_DATE") == null ? null : OppMilestonedate.Field<object>("EMP_JOIN_DATE").ToString().Substring(0, 10), 
       VALUE = sColName 
      } 
    ).Where(x => x.TEXT != null).Distinct();