作者: admin

  • Dapper执行存储过程,获取Sequence

    Dapper执行存储过程,获取Sequence

    这里主要是DynamicParameters的使用

    using (var conn = DbConfig .GetConnection())
    {
        conn.Open();
        var p = new DynamicParameters();
        p.Add("@seq", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
        conn.Execute("P_GetSeq", p, commandType: CommandType.StoredProcedure);
        Response.Write(p.Get< int>( "@seq"));
    }

  • 去掉新浪SAE未实名认证时的提示

    最近 SAE 在未实名认证的应用上会有一提示:该页面的提供者尚未完成’,’实名认证’,’您的访问可能存在风险

    提示就提示吧,只是每次挡住后台的菜单比较麻烦。

    于是果断 F12 看了一下,原来SAE是在标签的结尾加了一段 JS ,用 JS 来生成提示代码。

    好吧,找到 typecho 的 footer.php 文件,在最后加一个<!-- 然后保存上传,刷新页面后,提示消失了。

    前台的 footer.php 在 usr/themes/default 目录下。

    后台的 footer.php 在 admin 目录下。

    对于后台,我是直接在文件最后 使用echo输出 一个<!--

    <?php if(!defined('__TYPECHO_ADMIN__')) exit; ?>
        </body>
    </html>
    <?php
    /** 注册一个结束插件 */
    Typecho_Plugin::factory('admin/footer.php')->end();
    
    echo '<!--';

    搞定!

  • 开始使用独立博客

    很早就想有一个属于自己的独立博客,域名早就注册好了,www.wujie.me,但一直没有行动。

    本来是想自己做博客的,但折腾了几天,实在是没时间和精力去弄,于是选择了typecho这个PHP博客系统。对这个系统关注很久了,代码很清晰明了,比WP好不少,以前折腾过WP,功能是不少,但代码实在是看不下去。

    这个博客HOST在新浪SAE上,SAE的一个好处就是可以绑定未备案域名,这点还是非常不错的。目前还没有做实名认证,以至于每次刷新页面,都会弹出一个未实名认证完成的提示。改天要去提交下资料认证下。免费的,挺好的。

    博客搭建起来了,有时间尽量应该写一写。记录一下,与人分享。

    2024.11.25:wujie.me已于2019年11月从零重建,作为自己的生活博客。www.lwbj.cn作为自己的个人技术博客。

  • Typecho在新浪SAE上开启Rewrite

    Typecho在新浪SAE上开启Rewrite:

    打开 SAE 应用上的 config.yaml

    #cron:
    # - description: cron test
    # url: index.php
    # schedule: every 43 mins
    # timezone: Beijing
    handle:
    - rewrite: if(!is_dir() && !is_file()) goto "index.php?%{QUERY_STRING}"

    使用 SVN 上传到 SAE ,然后在 typecho 后台 “设置”=>“永久链接”=>“启用地址重写功能”,提示失败时,直接勾选略并继续就行了。

    失败是由于创建 .htaccess 文件失败,但在 SAE 上是使用的是config.yaml 来配置 URL 重写的,因为我们上面已经手动配置好了config.yaml,所以这里不用管它,可以直接忽略。

    现在越来越喜欢 typecho 这个程序了,简洁不简单,各种情况都考虑到了。

    2024.11.25补充:博客程序就选wordpress,生态很重要。

  • ASP.NET MVC 输出ModelState中的所有错误信息

    ASP.NET MVC 输出ModelState中的所有错误信息:

    StringBuilder sb = new StringBuilder ();
    var Keys = ModelState.Keys.ToList();
    foreach (var key in Keys)
    {
        var errors = ModelState[key].Errors.ToList();
        //将错误描述添加到sb中
        foreach (var error in errors)
        {
            sb.AppendLine(error.ErrorMessage);
        }
    
    }
    
    ViewBag.err = sb.ToString();
  • centos安装mono

    centos安装mono:

    添加源

    rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
    yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

    安装 mono

    yum install mono

    安装jexus 

    jexus curl jexus.org/5.6.x/install | sh 

  • 查看SQL Server实际占用的物理内存

    查看SQL Server实际占用的物理内存

    SELECT
        object_name
       ,Counter_name
       ,cntr_value
       ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
    FROM
        sys.dm_os_performance_counters
    WHERE
        object_Name LIKE '%Buffer Manager%'
        AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                     'Database pages' )
    UNION SELECT
        object_name
       ,Counter_name
       ,cntr_value
       ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
    FROM
        sys.dm_os_performance_counters
    WHERE
        counter_name IN ( 'Target Server Memory (KB)',
                          'Total Server Memory (KB)' )
  • C#中根据Enum的值获取对应的名称

    C#中根据Enum的值获取对应的名称

    public enum OrderStateEnum
    {
        未发货 = 1 ,
        已发货 = 2 ,
        交易成功 = 3
    }

    意思就是,根据1,2,3获取对应的key(如”未发货”)

    代码如下:

    this.txtState.Text = Enum.Parse(typeof(OrderStateEnum), "1",  true).ToString();
  • WebForm写起来还是很带感的

    WebForm写起来还是很带感的。感觉是比较符合我的思想,以后就用WebForm了,至于MVC,看情况吧。 反正我现在是不太喜欢它。

  • 给软件加控制功能,可以随时中断使用

    给软件加控制功能,可以随时中断使用

    public void RemoteCtrl()
    {
        WebClient web = new WebClient();
        web.Encoding = Encoding.UTF8;
        string json = web.DownloadString("http://softapi.ilinshu.cn/softinfo/query/1" );
        SoftInfo si = JsonConvert.DeserializeObject<SoftInfo >(json);
        if (si.State != 0)
        {
            MessageBox.Show(si.ErrorMessage, "内部错误" , MessageBoxButtons .OK, MessageBoxIcon.Stop);
            Environment.Exit(0);
            return;
        }
    }