项目任务管理(TaskMgr)技术篇

判定是否为枚举型:type.IsEnum

应用原型:如果是枚举返回字符型,如果是其他类型直接返回;

object value = pro1.FieldType.IsEnum ? pro1.GetValue(task).ToString() : pro1.GetValue(task);

 

设计和属性以及字段

作为设计,最好统一使用属性(Property),而不是Field,这里存在一个未来统一处理,比如反射统一反射Property获取属性值;不适用field是因为它不够灵活,一旦稍微获取有点逻辑处理,就不能很好的使用统一处理;所以属性更加灵活;

 

OpenFileDialog的使用

应用原型:弹出框来选择文件

if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    this.txtFileName.Text = openFileDialog1.FileName;
}

 

MySql的连接使用

MySql针对Java和.Net都有connector,安装路径是“http://dev.mysql.com/downloads/connector/”,对于C#而言选择“Connector for NET”,安装之后就应该在GAC中注册了该组件,可以在右键“引用”中发现MySql.dll,之后就可以在ADO.NET体系下使用MySql

public void InsertToMySql(String pSQL)
{
    MySqlCommand myCommand = null;

    using (MySqlConnection conn = new MySqlConnection())
    {
        conn.ConnectionString = ConfigurationManager.ConnectionStrings["mySqlConnStr"].ConnectionString;
        conn.Open();
        myCommand = new MySqlCommand(pSQL, conn);
        int influentCount = myCommand.ExecuteNonQuery();
        conn.Close();
        this.lblInfluenceCount.Text = Convert.ToString(influentCount.ToString());
        MessageBox.Show("OK!");
    }
}

 

WinForm程序直接跳出

在测试类中完美跑完Case,但是在WinForm工程执行到访问EF访问DB,直接跳出去,Form展示;后来发现没有在app文件中配置EF相关信息;不过没有报错,直接跳出有点太直接了。仍然跳出;没有往常调试黄色中断;后来添加try…catch…捕获到了异常

Could not load file or assembly 'MySql.Data, Version=6.6.5.0…

解决方案:将MySQL安装路径下MySQLConnector NET 6.7.4AssembliesvX.0的MySql.Data.dll以及MySql.Data.Entity.dll拷贝到bin目录下即可。

DB结合Entity Framework工作流程

首先是更新文档(PowerDesigner),如果是数据无所谓,直接通过右键“Preview SQL“进行copySQL文直接在MySql上面运行;

更新edmx文件,保持和DB同步;

最后是更新一下对应的业务实体对象(不是数据实体,数据实体交给edmx即可);

count++和count+1的区别

pNode.StepNo = this.allNodes.Count + 1;

一切都正常,但是在上面之前我是这样处理的,爆出异常:

property or indexer 'System.Collections.Generic.List<Entity.BizWorkflowSequeuece>.Count' cannot be assigned to -- it is read only   

这两者的区别就在于,前者不会改变count的值,后者是会改变count值的。

调试抛出异常定位

Form工程,引入其他工程,如果其他工程发生异常,调试状态下,会直接跳出程序,而不会说停下来,定位到异常处:

Debug->Exceptions;勾选上Common Language Runtime Exception

image

原文地址:https://www.cnblogs.com/xiashiwendao/p/3551746.html