是不是.net compact framework的Bug呢?
这些天.net compact framework把我惹火了,一些莫名其妙的错误,真是又好笑又气.举几个例吧.
我用的是.net compact framework 1.1.
1) ComboBox控件
总觉得ComboBox不是很合理,用起来不爽.
如果代码如下
另外当你使用如下代码
2) ADO.NET
如果说以上的代码不是什么bug的话,那么下面肯定是了
说说SqlCeParameter
先看看数据类型
如果换为一下代码就不行了
然后在看看SqlCeParameter的顺序.
上面有两个SqlCeParameter,并且sql语句为
真的很奇怪.
难道这不是微软的bug.如果有人说这不是bug,那么我就认为微软应该考虑到易用性,灵活性了.不然用起来真的难受呀.
真的是领教了.net compact framework了.据的它还是有点不成熟.
我遇见了很多bug,就不一一说了.以后遇见了再说吧.
我用的是.net compact framework 1.1.
1) ComboBox控件
总觉得ComboBox不是很合理,用起来不爽.
如果代码如下
1combox.DataSource=arr;
2combox.DisplayMember="name"
绑定数据之后,假设arr有数据的话,居然combox.Items.Count为0.2combox.DisplayMember="name"
另外当你使用如下代码
1combox.Text="China"
没有任何数据显示在ComboBox上.郁闷.2) ADO.NET
如果说以上的代码不是什么bug的话,那么下面肯定是了
说说SqlCeParameter
先看看数据类型
1 SqlCeParameter[] paras=new SqlCeParameter[2];
2
3 paras[0]=new SqlCeParameter();
4 paras[0].DbType=DbType.String;
5 paras[0].ParameterName="Subject_f";
6 paras[0].Value=task.Subject;
这个代码是可以的,2
3 paras[0]=new SqlCeParameter();
4 paras[0].DbType=DbType.String;
5 paras[0].ParameterName="Subject_f";
6 paras[0].Value=task.Subject;
如果换为一下代码就不行了
1 SqlCeParameter[] paras=new SqlCeParameter[2];
2
3 paras[0]=new SqlCeParameter();
4 paras[0].SqlDbType=SqlDbType.VarChar;
5 paras[0].ParameterName="Subject_f";
6 paras[0].Value=task.Subject;
7
你说以上代码没有什么区别,怎么就不行呢?2
3 paras[0]=new SqlCeParameter();
4 paras[0].SqlDbType=SqlDbType.VarChar;
5 paras[0].ParameterName="Subject_f";
6 paras[0].Value=task.Subject;
7
然后在看看SqlCeParameter的顺序.
1 SqlCeParameter[] paras=new SqlCeParameter[2];
2
3 paras[0]=new SqlCeParameter();
4 paras[0].DbType=DbType.String;
5 paras[0].ParameterName="Subject_f";
6 paras[0].Value=task.Subject;
7
8 paras[1]=new SqlCeParameter();
9 paras[1].DbType=DbType.String;
10 paras[1].ParameterName="Notes_f";
11 paras[1].Value=task.Notes;
12
2
3 paras[0]=new SqlCeParameter();
4 paras[0].DbType=DbType.String;
5 paras[0].ParameterName="Subject_f";
6 paras[0].Value=task.Subject;
7
8 paras[1]=new SqlCeParameter();
9 paras[1].DbType=DbType.String;
10 paras[1].ParameterName="Notes_f";
11 paras[1].Value=task.Notes;
12
上面有两个SqlCeParameter,并且sql语句为
update test set notes_f=?,subject_f=?
居然不可以执行,如果把上面Paras的顺序修改一下 1 SqlCeParameter[] paras=new SqlCeParameter[2];
2
3 paras[0]=new SqlCeParameter();
4 paras[0].DbType=DbType.String;
5 paras[0].ParameterName="Notes_f";
6 paras[0].Value=task.Notes;
7
8 paras[1]=new SqlCeParameter();
9 paras[1].DbType=DbType.String;
10 paras[1].ParameterName="Subject_f";
11 paras[1].Value=task.Subject;
2
3 paras[0]=new SqlCeParameter();
4 paras[0].DbType=DbType.String;
5 paras[0].ParameterName="Notes_f";
6 paras[0].Value=task.Notes;
7
8 paras[1]=new SqlCeParameter();
9 paras[1].DbType=DbType.String;
10 paras[1].ParameterName="Subject_f";
11 paras[1].Value=task.Subject;
真的很奇怪.
难道这不是微软的bug.如果有人说这不是bug,那么我就认为微软应该考虑到易用性,灵活性了.不然用起来真的难受呀.
真的是领教了.net compact framework了.据的它还是有点不成熟.
我遇见了很多bug,就不一一说了.以后遇见了再说吧.