try
{
string strPath = Application.StartupPath + "\\DiskOprate.mdb";
string ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=" + strPath;
OleDbConnection oleCon = new OleDbConnection(ConStr);
OleDbDataAdapter oleDap = new OleDbDataAdapter(Sql,oleCon);
oleDap.Fill(ds, "设置数据");
return ds;
oleCon.Dispose();
}
catch
{
MessageBox.Show("数据库连接失败");
return ds;
}
风险分析:在数据查询,以及事件绑定时由于错误数据而导致了系统奔溃,或者显示乱码。
解决方案:在可能发生异常的事件,以及数据连接的地方运用try /catch来检测。
6.1.2 用户错误数据
本算法模拟系统是一个主要通过用户输入数据,经过处理而得到相应的结果。所以用户的输入规范,就极其的重要。因为错误数据可能会导致系统的错误结果,或者使其出现系统异常从而导致程序崩溃。
如:int page = Change(textBox1.Text.Substring(0, 3));
而change()类如下
public int Change(string two)
{
return (Convert.ToInt32(two, 2));
}
看上去没问题 但是用户在输入文本框数据不是二进制是此系统将奔溃。
风险分析:由于没有限制用户的输入,而用户输入的数据不一定满足条件,可能是误操作,因而错误的可能。程序只是通过截取字符串而导致错误无法尽心内置类的运行
解决办法:限制用户的输入,在文本框输入事件上进行判定。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0' && e.KeyChar <= '1') || (e.KeyChar == (char)Keys.Back))
{
e.Handled = false;
return;
}
e.Handled = true;
}
6.1.3 数据的转换
本系统在页面置换算法在获取页面使,由于数据是由文本转换为数字,在其之后的最佳适应算法要比对数据最迟之后出现。是将每数字在文本中的位置,这就将遇到数字转换为字符串,并且查找其相应的位置。
这也造成有以下可能:
字符串123,12,1 中查找 数字 1第一次出现的位置得到的结果就将错误。
风险分析:由于查找子字符串位置时,不能很好的获取其位置,系统只是查找出现此字符所位置,但有可能这位置不是预期的。从而导致错误的结论。
解决方案:要确保查找到的字符串位置是正确的,应该确保查找字符具有特殊性,在原字符串中不具有二义性。 C#操作系统课件设计算法模拟模块算法模拟系统(13):http://www.youerw.com/jisuanji/lunwen_1414.html