close
文章出處
這些天.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,就不一一說了.以后遇見了再說吧.
不含病毒。www.avast.com |
全站熱搜
留言列表