C#中的OrderBy子句

时间:2016-05-19 08:05:18

标签: c# sql sql-order-by

这是一种从我的数据库中的视图中获取数据的方法。

public static DataTable GetUnloadingPointList(string whereClause, string connectionString)
{
    string strSql = @"SELECT * FROM view_ODW_SI_UnloadingPoints ";

    if (!string.IsNullOrEmpty(whereClause))
    {
        strSql += "where " + whereClause;
    }

我在这里要做的是按id添加order by子句。我在excel中的导出是通过另一种方法完成的,但我需要这个。

2 个答案:

答案 0 :(得分:2)

试试这个:

public static DataTable GetUnloadingPointList(string whereClause, string connectionString)
            {
                string strSql = @"SELECT * FROM view_ODW_SI_UnloadingPoints where 1=1 ";

                if (!string.IsNullOrEmpty(whereClause))
                {
                    strSql += " and  " + whereClause;
                }
                 strSql += " order by id  " ;

答案 1 :(得分:2)

当您必须在字符串的中间中插入某些内容( where子句或其他内容)时,我建议使用格式

public static DataTable GetUnloadingPointList(string whereClause, 
                                              string connectionString) {
  String strSql = String.Format(
    @"  SELECT * 
          FROM view_ODW_SI_UnloadingPoints 
           {0} 
      ORDER BY id",
    string.IsNullOrEmpty(whereClause) ? "" : "WHERE " + whereClause);

  ...

}
当您必须组装复杂字符串时,

格式化非常有用(例如具有排序, group by < / em>等)。在 C#6.0 中,您可以使用字符串插值

   public static DataTable GetUnloadingPointList(string whereClause, 
                                                 string connectionString) {
      String strSql =
        $@"  SELECT * 
               FROM view_ODW_SI_UnloadingPoints 
             {(String.IsNullOrEmpty(whereClause) ? "" : "WHERE " + whereClause)} 
           ORDER BY id";
     ...