记录一下常用代码

一、FreeSQL

1、单表查询返回指定字段
_freeSql.Select<User>().Where(a => a.cId != AspNetUser.UserId).ToList(a => new { a.cId, a.cName });

2、IF条件判断查询
_freeSql.Select<Region>().WhereIf(grade != 1, a => a.cParentId == cRegionCode).ToListAsync();

3、IF条件模糊查询
_freeSql.Select<Region>().WhereIf(!queryParam["name"].IsEmpty(),a => a.cRegionCode.Contains(queryParam["code"].ToString()))

4、分页及多表查询
 var aa = _freeSql.Select<tb_eqadapp, DataItem, DataItem>()
              .LeftJoin(x => x.t1.cAddressID == x.t2.cId)
              .LeftJoin(x => x.t1.cSBID == x.t3.cId)
               .OrderByDescending(x => x.t1.cCreateTime)
              .Count(out var total) //总记录数量
                .Page(page.pageIndex, page.pageSize)
              .ToList((a, b, c) => new
              {
                  a.cId,
                  a.cPosition,
                  a.cAddressID,
                  a.cUnitName,
                  a.cPhone,
                  a.cState,
                  a.cCreateTime,
                  b.cItemName,
                  CSBName = c.cItemName
              });

5、分组汇总查询
 //分组查询应用类型以及总数
                    var yylx = _freeSql.Select<tb_appinfo, DataItem>()
                        .LeftJoin(a => a.t1.cChannelType == a.t2.cId)
                        .Where(a => a.t1.cUserID == AspNetUser.UserId)
                        .GroupBy(a => a.t2.cItemName)
                         .Having(x => x.Count() > 1)//显示大于0的数据
                        .ToList((a) => new
                        {
                            yymc = a.Key,//应用名称
                            yynum = a.Count()//应用总数
                        });

二、Layui常用代码

//子页面提示结束后关闭弹窗并刷新父页面的Table数据
parent.layer.msg('成功通过!', { icon: 1, time: 1200 }, function () {
                    var index = parent.layer.getFrameIndex(window.name); //获取当前窗口的name
                    parent.layer.close(index);//关闭窗口      
                    parent.layui.table.reload("user-manage");//刷新父页面的Table,user-manage:父页面Table的ID
            });


**************************************分割线********************************************


//弹窗
layer.open({
         type: 2,
         title: '添加考试成员',
         content: 'SJCYAdd.html?id=' + selectRow.cid,
         maxmin: true,
         area: ['90%', '90%'],
         btn: ['关闭'],
         success: function () { },
         yes: function (index, layero) {//关闭的回调
            table.reload(areaName);
            layer.close(index);
           },
         cancel: function (index, layero) {//弹窗右上角关闭按钮的回调
            table.reload(areaName);
            layer.close(index);
            }
    });


**************************************分割线********************************************


//防止按钮重复点击
var that = this.yes.arguments[1];
that.find('a.layui-layer-btn0').css("pointer-events", "none");//防止按钮重复点击
// setTimeout(() => { that.find('a.layui-layer-btn0').css("pointer-events", "") }, 2000)//2秒后恢复点击




$('#form-submit').css("pointer-events", "none");//防止按钮重复点击
setTimeout(() => { $('#form-submit').css("pointer-events", "") }, 2000)//两秒后启用


**************************************分割线********************************************


//Layui 开关按钮显示是否确定提示框
<input type="checkbox" checked="" name="codeSwitch" lay-skin="switch" id="open" lay-filter="switchTest" lay-text="启用|已禁用">

 //监听提交
            form.on('switch(switchTest)', function (data) {
                console.log(data.elem); //得到checkbox原始DOM对象
                console.log(data.elem.checked); //开关是否开启,true或者false
                console.log(data.value); //开关value值,也可以通过data.elem.value得到
                console.log(data.othis); //得到美化后的DOM对象
                var txt = "";
                if (data.elem.checked) {
                    txt = "确定需要启用吗?";
                }
                else {
                    txt = "确定需要停用吗?";
                }
                var x = data.elem.checked;
                layer.open({
                    content: txt
                    , btn: ['确定', '取消']
                    , yes: function (index, layero) {
                        data.elem.checked = x;
                        form.render();
                        layer.close(index);
                        //按钮【按钮一】的回调
                    }
                    , btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                        data.elem.checked = !x;
                        form.render();
                        layer.close(index);
                        //return false 开启该代码可禁止点击该按钮关闭
                    }
                    , cancel: function () {
                        //右上角关闭回调
                        data.elem.checked = !x;
                        form.render();
                        //return false 开启该代码可禁止点击该按钮关闭
                    }
                });
                return false;
            });


**************************************分割线********************************************


//Table操作列气泡文字显示
操作列按钮:
<button lay-tips="数据编辑" class="pear-btn pear-btn-primary pear-btn-sm x-edit" lay-active="x-edit" style="margin-right:5px"><i class="layui-icon layui-icon-edit "></i></button>



//用户管理
table.render({               
     cols: [[
             { title: '操作', width: 200, align: 'center', fixed: 'right', templet: () => $.userbutton() }
           ]],
         done() {
              //Tips
              $('*[lay-tips]').on('mouseenter', function () {
                var content = $(this).attr('lay-tips');
                this.index = layer.tips('<div style="padding: 5px; font-size: 14px; color: #eee;">' + content + '</div>', this, {
                 time: -1
                 , maxWidth: 280
                  , tips: [1, '#3A3D49']
                        });
                    }).on('mouseleave', function () {
                        layer.close(this.index);
                    });
                }
            });


**************************************分割线********************************************

//获取上级页面的元素
var i = parent.document.getElementById("layui-badge-dot");

Table控制操作列按钮的显示与隐藏

Table操作列气泡文字显示

三、C#常用代码

//Json字符串序列化
JObject user = (JObject)JsonConvert.DeserializeObject(Json字符串);

//Json字符串转实体类
T mod=(T)JsonConvert.DeserializeObject(json, typeof(T))

//分组查询输出指定字段
var objb = obja.GroupBy(a => a.cType).Select(a => a.Key).ToArray();

//.NetCore API图片上传功能
 [HttpPost, AllowAnonymous]
        public object WeditorUpload()
        {
            IFormFileCollection files = Request.Form.Files;
            var baseDirec = Directory.GetCurrentDirectory() + "/wwwroot/UpLoadFile/";  // 根目录
            var file = files[0];
            //获取文件名后缀
            string extName = Path.GetExtension(file.FileName).ToLower();
            //获取保存目录的物理路径
            if (System.IO.Directory.Exists(baseDirec) == false)//如果不存在就创建images文件夹
            {
                System.IO.Directory.CreateDirectory(baseDirec);
            }
            string fileNewName = Guid.NewGuid().ToString();
            string ImageUrl = baseDirec + fileNewName + extName;
            //SaveAs将文件保存到指定文件夹中
            using (var stream = new FileStream(ImageUrl, FileMode.Create))
            {
                file.CopyToAsync(stream);
            }
            return new { errno = 0, data = new { url = "http://localhost:5258/UpLoadFile/" + fileNewName + extName, alt = "", href = "" } };
        }




**************************************分割线********************************************




private readonly IServiceScopeFactory _scopeFactory;


using var scope = _scopeFactory.CreateScope();
var scopedService = scope.ServiceProvider.GetRequiredService<IDeviceManageService>();//实现自定义某接口
var objlist = scopedService.GetHomeData();//调用自定义接口内的某方法



**************************************分割线********************************************
获取查询条件的索引值

 var query3 = elementsas.Select((m, ssssa) => new { value = m.Name, index = ssssa }).Where(m => m.value.Contains("微信号")).Select(m => m.index + 1).ToList();


**************************************分割线********************************************
Json序列号处理时间带T的问题

IsoDateTimeConverter timeConverter = new IsoDateTimeConverter()
{
  DateTimeFormat = "yyyy-MM-dd HH:mm:ss"
};

 return JsonConvert.SerializeObject(数据源, Formatting.Indented, timeConverter);

**************************************分割线********************************************

读取配置文件
public IConfiguration _configuration { get; set; }

public SendNewsService(IBaseRepository baseRepository, IConfiguration configuration) : base(baseRepository)
{
    _configuration = configuration;
}


使用
 var url = _configuration["ConnectionStrings:Email"]; 
 var url2 = _configuration.GetValue<string>("ConnectionStrings:Email");
 var url3 = _configuration.GetSection("ConnectionStrings").GetSection("Email").Value; 


**************************************分割线********************************************

两个实体类合并



JObject o1 = JObject.Parse(JsonConvert.SerializeObject(tab[0]));
JObject o2 = JObject.Parse(JsonConvert.SerializeObject(newM));

o1.Merge(o2, new JsonMergeSettings
{
    MergeArrayHandling = MergeArrayHandling.Union
});
M_YL_FZHF_Master entity = JsonConvert.DeserializeObject<M_YL_FZHF_Master>(o1.ToString());






接口实现方法

四、JQ常用代码

var json = $.grep(json数据, function (e) {
     return e.字段 != 需要删除的数据
 });
 
 
//根据条件进行精确查询
var json = json数据源.filter(function (e) {
    return e.字段==需要查询的数据
})
 
 
//Ajax请求post接口并发送FromBody对象
let formData = new FormData();
formData.append("csjmc", $("#sjmc").val());
$.ajax({
    type: 'post',
    data: formData,
    dataType: 'json',
    async: false,//同步
    contentType: false,
    processData: false,
    url: "/api/sj/Edit",
    success: function (r) {
        if (r.code == 200) {
 
        }
     }
});



//读取某个标签下的所有Img标签的src值
$.each($('#idno').find('img'), function (index, img) {
       var oldSrc = $(this).attr('src');
 })

五、SQL常用代码

--跨数据查询添加SQL脚本
INSERT INTO  db_layui.dbo.tb_apiinputparam(cId,cKey,cName,cType,cNotes,cAPIId,cMust)
select * from db_devicedonitor.dbo.tb_apiinputparam where cAPIId='c676c51a-2bc9-49e3-80be-07b6b67c6d19'


-------------------------------------------分割线------------------------------------


--通过分组方式去除重复行,得到想要数据导出到临时表
SELECT 字段列表 INTO #临时表名 FROM 表名 GROUP BY 字段列表

--在备份表中导入需要的数据
INSERT INTO 表名 SELECT * FROM #临时表名

--删除临时表
DROP TABLE #临时表名

-------------------------------------------分割线------------------------------------


–SQL Server 2008R2 收缩日志
----------改变数据库模式(简单)
alter database 数据库 set recovery simple
DBCC SHRINKFILE (N'数据库_log' , 1) --将日志文件改为1M
----------恢复数据库模式(完整)
alter database 数据库 set recovery full


-------------------------------------------分割线------------------------------------



六、Linux常用脚本

cd .. 	返回上级目录

Nginx:
cd /usr/local/nginx 	进入Nginx目录
cd /usr/local/nginx/sbin	进入Nginx启动目录
cd /usr/local/nginx/conf	进入Nginx配置目录
cd /usr/local/nginx/html	Nginx html站点目录
./nginx -s reload	重启加载
./nginx	启动

防火墙:
firewall-cmd --state 		查看防火墙状态
firewall-cmd --list-ports 	查看开放的端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent 	开启防火墙端口
firewall-cmd --zone=public --remove-port=9200/tcp --permanent	关闭防火墙端口
systemctl start firewalld 	启动防火墙
systemctl stop firewalld	关闭防火墙
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效 

操作文件:
rm -rf 文件名	删除文件
unzip -d 文件名.zip	将压缩文件解压至当前路径	注意:使用解压命令时,需要与压缩文件处于同级目录下
unzip -d 目录路径 文件名.zip	将压缩文件解压至指定路径
mv  文件名  目标文件夹路径	文件移动
rm -f *	删除文件夹下所有文件
不覆盖解压 unzip -n、覆盖解压 unzip -o 用法与解压命令一致

.NetCoreAPI启动命令
nohup dotnet xxxx.dll &

七、Winform常用代码

//解决父窗体MDI子窗体显示时,被父窗体的控件遮住

/// <summary>
/// 解决MDI子窗体被父窗体控件遮住
/// </summary>
/// <param name="hWndChild"></param>
/// <param name="hWndNewParent"></param>
/// <returns></returns>
[DllImport("user32")]
public static extern int SetParent(int hWndChild, int hWndNewParent);

//使用方法
ShowLoad s = new ShowLoad();
s.MdiParent = this;
s.Show();
SetParent((int)s.Handle, (int)this.Handle);



----------------------分割线-------------------------------------
//修改MDI背景色

private System.Windows.Forms.MdiClient m_MdiClient;


 public Main()
        {
            InitializeComponent();

            int iCnt = this.Controls.Count;
            for (int i = 0; i < iCnt; i++)
            {
                if (this.Controls[i].GetType().ToString() == "System.Windows.Forms.MdiClient")
                {
                    this.m_MdiClient = (System.Windows.Forms.MdiClient)this.Controls[i];
                    break;
                }
            }
            this.m_MdiClient.BackColor = System.Drawing.Color.Black;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值