Hunain Hafeez Ответов: 4

Преобразование да нет да нет


я выбираю битовое поле из поля SQL server ISApproved, которое хранит 0, 1, но когда я выбираю его в своем C#, то он показывает TRUE FALSE в столбце, но я хочу YES NO вместо него.

CODE:

public ActionResult ShowHrEmployeeRec(int? EmplID = null)
        {
            if (!String.IsNullOrEmpty(Session["Admin"] as string))
            {

                IEnumerable<GetHrEmployeeResult> HrEmployee = DataContext.GetHrEmployee(EmplID).ToList();
                ViewBag.Month = Request.QueryString["Month"];
                return View(HrEmployee);
            }
            else
            {
                return RedirectToAction("IsAuth_Page", "Home");
            }
VIEW:

 @{
 
     var grid = new WebGrid(ViewData.Model, defaultSort: "EmplID", rowsPerPage: 1);
    
  }

  @if (Model.Count > 0)
  {
      <div id="AllEmpGrid_ByName">
       @grid.GetHtml(columns: grid.Columns(
                                            grid.Column("EmplID", "Employee ID"),
                                            grid.Column("EmplName", "Employee Name"),
                                            grid.Column("DeptName", "Department"),
                                            grid.Column("ShiftName", "Shift"),
                                            grid.Column("EntryDate", "Entry Date"),
                                            grid.Column("BasicSalary", "Basic Salary"),
                                            grid.Column("EmailAdd", "Email"),
                                            grid.Column("OvertimeApproved", "Overtime Approval")
                                           ))
     </div>
  }

4 Ответов

Рейтинг:
34

Shameel

Самый простой способ сделать это-на стороне базы данных.

SELECT IIF(IsApproved, "YES", "NO") AS OvertimeApproved


Maarten Kools

+5 гораздо чище, чем мой раствор. Мой SQL немного заржавел :|

thatraja

5! я уверен, что вы программист VB :D

[no name]

Да, был :-)

Maciej Los

+5

_Zorro_

Вы никогда не должны манипулировать данными в СУБД. Такого рода преобразования должны выполняться на самой сущности или на бизнес-уровне.

Рейтинг:
26

Maarten Kools

Используйте ДЕЛО[^] оператор в вашем SQL-запросе.

напр.

select col1, col2 = case when IsApproved != 0 then "yes" else "no" end, col 3 from mytable


thatraja

Еще 5!

Maarten Kools

Спасибо. Ты и Мачей.Лос слишком добры :)

Maciej Los

+5

Рейтинг:
1

Faisalabadians

вы можете сделать это в MVC WEB GRID вот так.

grid.Column("OvertimeApproved", header: "Overtime Approval",
                     format:
                    @<text> 
                            @if(item.IsApproved)
                            {
                                <span>Yes</span>
                            }
                            else
                            {
                                <span>No</span>
                            }
                    </text>
                    )


Рейтинг:
1

Vaibhav-Systematix

Мы можем использовать утверждение case для его достижения

выберите case when IsAdmin=1 then 'Yes' else 'NO' end from Tablename


Maciej Los

Есть ли какая-то причина публиковать тот же ответ, что и решение № 2?