📄 mydataset.cs
字号:
}
}
public DataTable ParamTable
{
get
{
return Tables[NAME_PARAM_TABLENAME];
}
set
{
if(ParamTable!=null)
Tables.Remove(ParamTable);
Tables.Add(value);
}
}
public DataTable SampleTable
{
get
{
if(Tables[NAME_SAMPLE_TABLENAME]==null)
return null;
//MessageBox.Show("本数据库总没有表:"+NAME_SAMPLE_TABLENAME, "fileName Entry Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return Tables[NAME_SAMPLE_TABLENAME];
}
set
{
if(SampleTable!=null)
Tables.Remove(SampleTable);
Tables.Add(value);
}
}
}//end class myCriDataSet
public class myExamDataSet : myDataSet
{
public static string NAME_EXAM_TABLENAME="数据";
public static string NAME_RESULT_TABLENAME="结论";
public static string NAME_TEMPLATERESUTL_FIELDNAME="模板解释结论";
public static string NAME_TEMPLATERNUM_FIELDNAME="结论";
public static string NAME_TEMPLATER_MATCHDEGREE_FIELDNAME="结论";
public static string NAME_STATIS_RESULTTYPE1_FIELDNAME="统计解释结论1";
public static string NAME_STATIS_RESULTCREDITSCORE1_FIELDNAME="统计置信度1";
public static string NAME_STATIS_RESULTTYPE2_FIELDNAME="统计解释结论2";
public static string NAME_STATIS_RESULTCREDITSCORE2_FIELDNAME="统计置信度2";
public static string NAME_STATIS_RESULTTYPE3_FIELDNAME="统计解释结论3";
public static string NAME_STATIS_RESULTCREDITSCORE3_FIELDNAME="统计置信度3";
public myExamDataSet()
{
}
public bool IsCriField(string field)
{
if(FieldSetting!=null)
{
DataRow[] rows=FieldSetting.Select("[NAME]="+ "\'"+field+"\'");
if(rows.Length<=0)
return false;
bool bUsed = Convert.ToBoolean(rows[0]["USEIT"]);
return bUsed;
}
//the old code should be discarded;
if(field=="序号")
return false;
if(ExamTable==null)
return false;
DataColumn col=ExamTable.Columns[field];
if(col==null)
return false;
if(col.DataType==typeof(Boolean) ||
col.DataType==typeof(Byte)||
col.DataType==typeof(Char)||
col.DataType==typeof(DateTime )||
col.DataType==typeof(String )||
col.DataType==typeof(TimeSpan)
)
return false;
return true;
}
public DataTable CreateStatisResultTable()
{
if(ExamTable ==null)
{
// MessageBox.Show("本数据库总没有表:"+NAME_EXAM_TABLENAME, "fileName Entry Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return null;
}
DataTable result=new DataTable(myResultDataSet.NAME_STATISRESULTTABLENAME);
result.Columns.Add(new DataColumn("序号",typeof(int)));
foreach(DataColumn col in ExamTable.Columns)
{
if(col.ColumnName=="序号")
continue;
if(!IsCriField(col.ColumnName))
result.Columns.Add(new DataColumn(col.ColumnName,col.DataType));
}//end foreach
result.Columns.Add(new DataColumn("结论",typeof(string)));
result.Columns.Add(new DataColumn("可信等级",typeof(int)));
foreach(DataColumn col in ExamTable.Columns)
{
if(col.ColumnName=="序号")
continue;
if(IsCriField(col.ColumnName))
result.Columns.Add(new DataColumn(col.ColumnName,typeof(float)));
}//end foreach
result.Columns.Add(new DataColumn("总计",typeof(float)));
return result;
}
public DataTable CreateFuzzyResultTable()
{
if(ExamTable ==null)
{
// MessageBox.Show("本数据库总没有表:"+NAME_EXAM_TABLENAME, "fileName Entry Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return null;
}
DataTable result=new DataTable(myResultDataSet.NAME_FUZZYRESULTTABLENAME);
result.Columns.Add("序号",typeof(string));
foreach(DataColumn col in ExamTable.Columns)
{
if(col.ColumnName=="序号")
continue;
if(!IsCriField(col.ColumnName))
result.Columns.Add(new DataColumn(col.ColumnName,col.DataType));
}//end foreach
foreach(string paratype in new string[]{"dizi","qice","dihua","cejing","zhonghe"})
{
result.Columns.Add(paratype+"结论",typeof(string));
result.Columns.Add(paratype+"置信度",typeof(double));
}
return result;
}
public DataTable CreateTemplateResultTable()
{
if(ExamTable ==null)
{
// MessageBox.Show("本数据库总没有表:"+NAME_EXAM_TABLENAME, "fileName Entry Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return null;
}
DataTable result=new DataTable(myResultDataSet.NAME_TEMPLATERESULTTABLENAME);
result.Columns.Add("序号",typeof(string));
foreach(DataColumn col in ExamTable.Columns)
{
if(col.ColumnName=="序号")
continue;
if(!IsCriField(col.ColumnName))
result.Columns.Add(new DataColumn(col.ColumnName,col.DataType));
}//end foreach
result.Columns.Add("结论",typeof(string));
result.Columns.Add("匹配度",typeof(double));
result.Columns.Add("匹配模板",typeof(int));
return result;
}
public DataTable ExamTable
{
get
{
return Tables[NAME_EXAM_TABLENAME];
}
set
{
if(ExamTable!=null)
Tables.Remove(ExamTable);
Tables.Add(value);
}
}
public DataTable ResultTable
{
get
{
return Tables[NAME_RESULT_TABLENAME];
}
set
{
if(ResultTable!=null)
Tables.Remove(ResultTable);
Tables.Add(value);
}
}
}//end class myExamDataSet
public class myItemValueDataSet : myDataSet
{
public myItemValueDataSet()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
}//end class myItemValueDataSet
public class myResultDataSet : myDataSet
{
public static string NAME_STATISRESULTTABLENAME="统计推理结果";
public static string NAME_FUZZYRESULTTABLENAME="模糊推理结果";
public static string NAME_TEMPLATERESULTTABLENAME="模板推理结果";
public static string NAME_CREDITLEVEL_FIELDNAME="可信等级";
public static string NAME_RESULT_FIELDNAME="结论";
public static string NAME_CREDITSCORE_FIELDNAME="总计";
public myResultDataSet()
{
//
// TODO: 在此处添加构造函数逻辑
//
DataSetName="专家系统推理结论";
}
public ArrayList CreateEmptyStatisResultRows(ArrayList resulttypes)
{
ArrayList resultemptyrows=new ArrayList();
foreach(object type in resulttypes)
{
DataRow row=StatisResultTable.NewRow();
row["结论"]=type;
resultemptyrows.Add(row);
}
return resultemptyrows;
}
public DataTable StatisResultTable
{
get
{
return Tables[NAME_STATISRESULTTABLENAME];
}
set
{
if(StatisResultTable!=null)
Tables.Remove(StatisResultTable);
Tables.Add(value);
}
}
public DataTable FuzzyResultTable
{
get
{
return Tables[NAME_FUZZYRESULTTABLENAME];
}
set
{
if(FuzzyResultTable!=null)
Tables.Remove(FuzzyResultTable);
Tables.Add(value);
}
}
public DataTable TemplateResultTable
{
get
{
return Tables[NAME_TEMPLATERESULTTABLENAME];
}
set
{
if(TemplateResultTable!=null)
Tables.Remove(TemplateResultTable);
Tables.Add(value);
}
}
}//end class myResultDataSet
public class myTemplateDataSet : myDataSet
{
public static string NAME_TEMPLATETABLENAME="template";
public static string NAME_TEMPLATE_MAX_TABLENAME="templatemax";
public static string NAME_TEMPLATE_MIN_TABLENAME="templatemin";
public myTemplateDataSet()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static bool IsTemplateGene(DataColumn col)
{
if(col==null)
return false;
if(col.ColumnName=="序号")
return false;
if(col.ColumnName=="井号")
return false;
if(col.DataType==typeof(String ))
return true;
return false;
}
public ArrayList CreateEmptyTemplateRows(ArrayList resulttypes)
{
ArrayList resultemptyrows=new ArrayList();
foreach(object type in resulttypes)
{
DataRow row=TemplateTable.NewRow();
row["结论"]=type;
resultemptyrows.Add(row);
}
return resultemptyrows;
}
public DataTable TemplateTable
{
get
{
return Tables[NAME_TEMPLATETABLENAME];
}
set
{
if(TemplateTable!=null)
Tables.Remove(TemplateTable);
Tables.Add(value);
}
}
public DataTable TemplateMaxTable
{
get
{
return Tables[NAME_TEMPLATE_MAX_TABLENAME];
}
set
{
if(TemplateTable!=null)
Tables.Remove(TemplateMaxTable);
Tables.Add(value);
}
}
public DataTable TemplateMinTable
{
get
{
return Tables[NAME_TEMPLATE_MIN_TABLENAME];
}
set
{
if(TemplateTable!=null)
Tables.Remove(TemplateMinTable);
Tables.Add(value);
}
}
public unsafe void AddTemplate(sbyte* temp,float score,
TemplateMapping tm,int indexbase)
{
try
{
DataRow minrow= TemplateMinTable.NewRow();
DataRow maxrow= TemplateMaxTable.NewRow();
DataRow templaterow=TemplateTable.NewRow();
foreach(DataRow tf in tm.Rows)
{
if(tf["name"] as string =="结果类型")
continue;
minrow[tf["name"] as string]=tf["min"];
maxrow[tf["name"] as string]=tf["max"];
String s=new String(' ',0);
int j;
int i;
for(j=(int)tf["offset"],i=0;i<(int)tf["width"];i++)
s+=(char)temp[j+i];
templaterow[tf["name"] as string]=s;
templaterow["分值"]=score;
}
templaterow["结论"]=tm.Resulttype;
templaterow["目标样本号"]=tm.XUHAOinTable;
templaterow["序号"]= indexbase+tm.XUHAOinTable;
minrow["序号"]= templaterow["序号"];
maxrow["序号"]= templaterow["序号"];
TemplateMinTable.Rows.Add(minrow);
TemplateMaxTable.Rows.Add(maxrow);
TemplateTable.Rows.Add(templaterow);
}
catch(Exception e)
{
MessageBox.Show("错误号:" +e.Source.ToString()+" "+e.Message,"突发错误!请详细记录本错误信息及目前的状态及操作,并报告我们!");
}
}
}//end class myTemplateDataSet
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -