摘要:
原因:Adapter不允许被Fill的表格的数据,存在Null值。解决方案: 1.妥协:把为Null的数据全部补上,然后再Fill。 方案优点:便于开发。 方案缺点:对于用户程序来说,像Excel或Access这种,都允许Null存在的,因此这种方法对于用户体验来说,并不好。 2.不妥协:把Fill和Update这两个操作,自己用DataReader去实现,不用Adapter。方案优点:可以提高对需求的实现能力,提高用户体验。 方案缺点:写起来麻烦,很多地方需要硬编码。不易于改动或扩展。 阅读全文
摘要:
1.不用DateTimePicker,因为它输入不方便,不能连续输入。建议使用UltraDateTimeEditor代替。2.使用UltraDateTimeEditor后,输入值的验证,焦点设置,以及绑定值的提交与更新等操作,都应该放在Leave事件中做,而不能放在ValueChanged事件中去做,否则会造成一些小Bug。原因:UltraDateTimeEditor的MaskInput的月份验证,并不是输入完整月份后再引发ValueChanged,而是输入一个值后,立即引发ValueChanged。因此,如果你使用了MaskInput,又在ValueChanged做验证 或 焦点设置 或 数 阅读全文
摘要:
1.UltraNumericEditor的输入模式有些奇怪,并不是正常的覆盖模式,而是使用插入模式进行输入的。2.通过观察发现,如果对UltraNumericEditor进行一次文本的全选,则可以按正常的覆盖模式进行输入。不过,UltraNumericEditor里是不能使用Ctrl + A来进行全选的,只能用鼠标左键双击来进行全选。3.综上所述,一种优化的操作就是,当UltraNumericEditor获得焦点后,文本全选,然后再进行输入。请参照 http://www.cnblogs.com/xxxteam/archive/2013/02/20/2918441.html来进行这个设置。 阅读全文
摘要:
1.如果仅仅对TextBox的Enter事件中,进行TextBox.SelectAll(),会发现没有效果。原因是,SelectAll()的确发生了,不过,在Enter之后,会触发其他事件,取消了这个效果。2.正确的做法是,在Enter事件中,设置一个开关,然后再MouseUp事件中再做SelectAll()操作。 例子:private bool _state_textBox1_selectAll = false;//开关值private void textBox1_Enter(object sender, EventArgs e){ this._state_textBox1_selec... 阅读全文
摘要:
1.回顾数据库知识:当一个表,已经有一个名为ID的自增主键,接着,我们要插入新数据时,新数据是不能带有ID值的。这样,数据库才能自动给新数据,按照自增ID的顺序,赋值新ID。 举个例子,表: struct { int ID, 自增; varchar Content; } 如果目前表里已经存在数据: ID Content 1 X1 2 X2 3 X3 此时,我们插入数据:(ID=null,Content='X4'),则这条数据,插入数据库后,ID会自动被赋值为4。这也是我们希望得到的结果,并且也是规范操作方式。 但是,如果我们插入数据:(ID... 阅读全文
摘要:
使用UltraGrid,选中当前Row,把Row的BindingSource给ComboBox修改。当ComboBox的Text第一次修改后,UltraGrid的Row里未能立即反应出该更改。通过观察,如果此时更改其他控件的值,或者此ComboBox多选择几次,就可以实现更改。我这里是通过前者进行的修改。假设还有一个TextBox,也绑定到该BindingSource上,则:private void ComboBox_ValueChanged(object sender, EventArgs e)//这个方法是ComboBox的ValueChanged的处理事件{ this.Combo... 阅读全文
摘要:
使用程序代码是无法更改UltraGridRowEditTemplate上的UltraGridCellProxy的Text值的。正确的做法应该是,从UltraGrid中,获取ActiveRow,然后通过修改对应Cell的值来实现值的更改。例子:this.ultraGrid1.ActiveRow.Cells["示例"].Value = "设定值";官网网址:http://www.infragistics.com/community/forums/t/60758.aspx?PageIndex=1我是从这个地址中的官方答复中,得到这种方法的。但是,用这个方法,有 阅读全文
摘要:
环境:C# / .net4.0 / VS2012 / WinForm在使用ComboBox时,出现“System.Data.DataRowView”问题。问题原因: 在给ComboBox的DataSource进行绑定后,会立即触发一次 SelectedIndexChanged 事件。在这个事件中,如果ComboBox的ValueMember和DisplayMember还未赋值,则ComboBox.Text一定是“System.Data.DataRowView”。解决方案:调整ComboBox绑定下拉菜单数据源的语句的顺序。 首先,应该先绑定ValueMember。 然后,再绑定DataSour 阅读全文
摘要:
1.带宽与传输速度 1.1 带宽的单位是 位/每秒(bit/s,b/s),指的是每秒传输多少位(二进制位)。bit是binary digit的缩写。binary:二进制的。digit:数字 1.2 一个字节 Byte = 8位 bit 1.3 我们使用下载工具,看到的速度,一般是 字节 / 每秒(b... 阅读全文
摘要:
环境:VS2012 / Win7 / C# Winform / .net 4.0 / 实体集 / DataRow -> BindingSource问题1:详情:1.存在一个DataTable,从里面获取一个NewRow。2.这个NewRow是实体集的实体,在初始化后,给它的属性(外键的属性)赋值。3.DataTable绑定到BindingSource4.用ComboBoxEditor,通过把Text属性与BindingSource绑定,来把这个外键属性显示出来。绑定代码写在Form的Shown事件里。5.当Form打开后,ComboBoxEditor的输入框为空白,”Text“属性为空字 阅读全文