首页 > 数据库 >记录一个使用mysql查询表单,多个参数.

记录一个使用mysql查询表单,多个参数.

时间:2024-03-07 14:44:37浏览次数:29  
标签:string edit sql 表单 mysql new model 查询 inputType

public DataTable QueryData(SearchViewModel model)
{
DataTable dt = new DataTable();
/把'删除掉,在编写文档时,不加个',MySqlParameter显示不出来/
List<'MySqlParameter> param = new List<'MySqlParameter>();

    model.inputMonths = model.inputMonths == "All" ? "":model.inputMonths;
    model.inputFactory = model.inputFactory == "All" ? "":model.inputFactory;
    model.inputType = model.inputType == "All" ? "" :model.inputType;
    model.inputState = model.inputState == "All" ? "" :model.inputState;
    model.inputWhether = model.inputWhether == "All" ? "" :model.inputWhether;


    string sql = @$"select fromno,date_ntroduced,item_type,proposer,lcm_factory,months,model_name,prod_id,lcd_pnl_id,sn,location,vlrr_date,product_type,defect_code,level2_code,symptom,
    diameter,length,width,mura_level,failure_stage,erma_no,remark,lcm_grade ,status,
    edit_oqc_code,edit_errc_descr,edit_trans_date,edit_oqc_id,edit_oqn_name,edit_radio_type, edit_analysis,edit_reason,edit_countermeasures,
    reviewer,reviewer_date,reviewer_commt
    from should_be_detected where 1=1 ";

    if(!string.IsNullOrWhiteSpace(model.stareDate) && !string.IsNullOrWhiteSpace(model.endDate))
    {
        string startDate = DateTime.Parse( model.stareDate).ToString("yyyy-MM-dd");
        string endDate = DateTime.Parse( model.endDate).ToString("yyyy-MM-dd");
        sql += $"and date_ntroduced >=@START_DATE and date_ntroduced <=@END_DATE ";
        param.Add(new MySqlParameter("@START_DATE", startDate));
        param.Add(new MySqlParameter("@END_DATE", endDate));
    }

    if(!string.IsNullOrWhiteSpace(model.inputMonths))
    {
        sql += "and months=@MONTHS ";
        param.Add(new MySqlParameter("@MONTHS", model.inputMonths));
    }
    if(!string.IsNullOrWhiteSpace(model.inputFactory))
    {
        sql += "and lcm_factory=@FAB ";
        param.Add(new MySqlParameter("@FAB", model.inputFactory));
    }

    Dictionary<string, string> dicType =  new Dictionary<string, string>{ 
        { "V", "VLRR" },
        { "S", "OBA/SORTING" },
        { "C", "客訴" },
        { "M", "廠內委託品" }
    };

    if (dicType.ContainsKey(model.inputType))
    {
        model.inputType = dicType[model.inputType];
    }
    
    if(!string.IsNullOrWhiteSpace(model.inputType))
    {
        sql += "and item_type=@ITEM_TYPE ";
        param.Add(new MySqlParameter("@ITEM_TYPE", model.inputType));
    }

    if(!string.IsNullOrWhiteSpace(model.inputState))
    {
        sql += "and status=@STATE ";
        param.Add(new MySqlParameter("@STATE", model.inputState));
    }

    if(!string.IsNullOrWhiteSpace(model.inputWhether))
    {
        sql += "and edit_radio_type=@WHETHER ";
        param.Add(new MySqlParameter("@WHETHER", model.inputWhether));
    }


    if(!string.IsNullOrWhiteSpace(model.inputPnlID))
    {
        sql += "and lcd_pnl_id=@PNL_ID ";
        param.Add(new MySqlParameter("@PNL_ID", model.inputPnlID));
    }

    MySqlConnection mycon=new MySqlConnection(str);
    try
    {
        mycon.Open();
        MySqlCommand cmd=new MySqlCommand(sql,mycon);
        cmd.Parameters.AddRange(param.ToArray());
        MySqlDataReader myDr = cmd.ExecuteReader();
        dt.Load(myDr);
        mycon.Close();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
    finally
    {
        mycon.Close();
    }
    return dt;
}`

标签:string,edit,sql,表单,mysql,new,model,查询,inputType
From: https://www.cnblogs.com/qiuyublog/p/18058853

相关文章

  • mysql测试环境和生产环境在同一台服务器上数据迁移避坑
    mysql测试环境和生产环境在同一台服务器上数据迁移要注意:生产库dacs ,测试库dacs_test 1、从生产导出数据:mysqldump-uroot-p --databases dacs >/tmp/dacs.sql如果此时无脑导入就会把生产覆盖了。source /tmp/dacs.sql ;因为t阿玛2、将导出数据的库替......
  • Python中怎么使用Spark的spark.read.format()函数读取MySQL数据库中的数据
    1.准备工作:安装pyspark库(pipinstallpyspark)2.代码:#导入模块frompyspark.sqlimportSparkSession#创建Spark会话对象spark=SparkSession.builder\.appName("ReadMySQL")\.getOrCreate()#或者写成一行spark=SparkSession.builder.appName("ReadMySQL&qu......
  • sqlserver和mysql区别
    1.数据库管理系统SQLServer是由微软公司开发的关系型数据库管理系统,适用于Windows操作系统。而MySQL则是由瑞典MySQL公司开发的,后来被Oracle公司收购,适用于多个操作系统,包括Windows、Linux和UNIX。2.许可证和成本SQLServer是商业产品,需要购买许可证才能使用。它的价格相对......
  • Mysql和Oracle自定义函数区别
    1.Mysql自定义函数dropfunctionifexistsget_date;createfunctionget_date(v_datetimedatetime,v_timevarchar(50))returnsvarchar(50)begin declarev_datevarchar(50); declarecDatevarchar(50); declarebeginDatevarchar(50); setcDate=date_format(......
  • MySQL explain
    简介mysqlexplain(或desc)用于分析SQL语句的执行计划,多用于测试查询性能。语法:explainsql...注意explain执行DML语句,数据不发生变化。explain执行的结果可以有多条数据,一条数据对应一个表,如果涉及union,MySQL内部会产生一个临时表,就会导致结果多一行数据。unionall不会创建......
  • 开源.NET8.0小项目伪微服务框架(分布式、EFCore、Redis、RabbitMQ、Mysql等)
    1、前言为什么说是伪微服务框架,常见微服务框架可能还包括服务容错、服务间的通信、服务追踪和监控、服务注册和发现等等,而我这里为了在使用中的更简单,将很多东西进行了简化或者省略了。年前到现在在开发一个新的小项目,刚好项目最初的很多功能是比较通用的,所以就想着将这些功能抽......
  • Mysql自定义函数报错合集
    参考:Mysql自定义函数报错解决方法1.在MySql中创建自定义函数报错信息如下:1.1错误显示ERROR1418(HY000):ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAinitsdeclarationandbinaryloggingisenabled(youmightwanttousethelesssafel......
  • Oracle数据库Date类型查询结果多出“.0“的解决方法
    ​ oracle设置数据库某张表的字段类型为date,数据库存值为 2019-11-2518:51:47格式,但是从数据库查询出来之后格式为  StringstopTime=map.get("stopTime").toString;2019-11-2518:51:47.0,多了个零,不知是毫秒还是纳秒,目前还不知为何,解决办法为转换时间类型或者前端分......
  • 【已解决】[图文步骤] message from server: “Host ‘172.17.0.1‘ is not allowed t
    写于2024.03.07北京.朝阳@目录报错信息环境现场解决方案步骤:成功最后报错信息先看看和你的报错一样不一样null,messagefromserver:"Host'172.17.0.1'isnotallowedtoconnecttothisMySQLserver"环境现场mac电脑使用docker部署了一个mysql。docker......
  • Mysql 基础
    创建数据库CREATEDATABASENAME;创建表#中括号[]是可选的意思,命令中不带中括号CREATETABLEtable_name(column1datatype[NULLorNOTNULL][DEFAULT默认值][AUTO_INCREMENTPRIMARYKEY],column2datatype,...//上边没有PRIMARYKEY可以在最下......