You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL表数据应用于Switch语句(JS/C#实现)

嘿,这需求很常见!我帮你整理了前端JavaScript和后端C#两种实现方案,优先推荐适配动态数据的映射方式,也提供了硬编码Switch的写法,你可以根据自己的场景选择:

前端JavaScript实现方案

方式1:对象映射(推荐,适合数据动态更新的场景)

如果你的SQL表数据可能会变动,用对象映射来实现等价于Switch的逻辑会更灵活,不用每次改数据都修改代码:

// 第一步:从后端API获取SQL表的映射数据(这里用模拟数据示例)
async function fetchMappingData() {
  // 实际项目中替换成你的API地址
  const response = await fetch('/api/mapping-data');
  return await response.json();
}

// 第二步:转换成键值对映射并实现匹配函数
async function getMatchedValue(inputValue) {
  const mappingList = await fetchMappingData();
  // 将数组转换成{ column1: column2 }的键值对对象
  const valueMap = mappingList.reduce((map, item) => {
    map[item.column1] = item.column2;
    return map;
  }, {});
  
  // 匹配输入值,没有匹配时返回默认值
  return valueMap[inputValue] || '未找到匹配值';
}

// 使用示例
getMatchedValue(2).then(result => console.log(result)); // 输出 Chennai

方式2:硬编码Switch(适合数据固定不变的场景)

如果SQL表的数据不会改动,你可以先把数据导出,手动写成Switch语句:

function getMatchedValue(inputValue) {
  switch(inputValue) {
    case 1:
      return 'Hyderabad';
    case 2:
      return 'Chennai';
    case 3:
      return 'Bangalore';
    default:
      return '未找到匹配值';
  }
}

// 使用示例
console.log(getMatchedValue(3)); // 输出 Bangalore
后端C#控制器实现方案

方式1:字典映射(动态数据友好)

在C#中用字典来实现和Switch等价的逻辑,适配数据库数据的动态变化:

// 先定义对应SQL表的实体类
public class MappingItem
{
    public int Column1 { get; set; } // 根据你的表字段类型调整,比如string
    public string Column2 { get; set; }
}

// 控制器中的实现
public class MappingController : ControllerBase
{
    private readonly YourDbContext _dbContext; // 注入你的数据库上下文

    public MappingController(YourDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    [HttpGet("get-matched-value")]
    public IActionResult GetMatchedValue(int inputValue)
    {
        // 从数据库读取所有映射数据
        var mappingItems = _dbContext.YourTableName.ToList();
        // 转换成字典
        var valueDict = mappingItems.ToDictionary(item => item.Column1, item => item.Column2);
        
        if (valueDict.TryGetValue(inputValue, out var matchedValue))
        {
            return Ok(matchedValue);
        }
        return Ok("未找到匹配值");
    }
}

方式2:硬编码Switch(数据固定场景)

如果数据不会变动,直接写Switch语句即可:

[HttpGet("get-matched-value")]
public IActionResult GetMatchedValue(int inputValue)
{
    switch(inputValue)
    {
        case 1:
            return Ok("Hyderabad");
        case 2:
            return Ok("Chennai");
        case 3:
            return Ok("Bangalore");
        default:
            return Ok("未找到匹配值");
    }
}

内容的提问来源于stack exchange,提问作者user8590818

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:50:07