TextBox 数据绑定可空类型

T121581 2015-04-04 01:24:39

public class DB {
public int? Age{
get ;
set;
}
}

DB db = new DB();
txtAge.DataBindings.Add("Text", db, "Age");


焦点离开TextBox,它的值又返回了原来的空值。求解
txtAge 需要为int? 类型,因为考虑到没有输入和0的区别
...全文
186 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JeffCls 2015-05-13
  • 打赏
  • 举报
回复
遇到同样的问题,有没有解决办法??
  • 打赏
  • 举报
回复
//
        // 摘要: 
        //     创建将指定控件属性绑定到指定数据源的指定数据成员的绑定,同时可选地以指定的格式字符串启用格式设置、根据指定的更新设置将值传播到数据源、当从数据源返回
        //     System.DBNull 时将该属性设置为指定的值、设置指定的格式提供程序,并将该绑定添加到集合。
        //
        // 参数: 
        //   propertyName:
        //     要绑定的控件属性的名称。
        //
        //   dataSource:
        //     表示数据源的 System.Object。
        //
        //   dataMember:
        //     要绑定到的属性或列表。
        //
        //   formattingEnabled:
        //     若要格式化显示的数据,则为 true;否则为 false。
        //
        //   updateMode:
        //     System.Windows.Forms.DataSourceUpdateMode 值之一。
        //
        //   nullValue:
        //     当数据源值为 System.DBNull 时要应用于绑定控件属性的 System.Object。
        //
        //   formatString:
        //     一个或多个格式说明符,指示如何显示值
        //
        //   formatInfo:
        //     重写默认格式设置行为的 System.IFormatProvider 的实现。
        //
        // 返回结果: 
        //     新创建的 System.Windows.Forms.Binding。
        //
        // 异常: 
        //   System.ArgumentException:
        //     由 propertyName 给出的属性在该控件上不存在或者为只读。 - 或 - 数据源中不存在指定的数据成员。 - 或 - 指定的数据源、数据成员或控件属性与集合中的另一个绑定相关联。
        public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue, string formatString, IFormatProvider formatInfo);
设置nullValue呢,这个有好几个重载方法
T121581 2015-04-06
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
你的DB是BindingSource吗?然后db的Age设置成可空类型了吗?
是的啊 Age 设置可空int 类型,但是与控件绑定后,控件不能改变Age的值
  • 打赏
  • 举报
回复
你的DB是BindingSource吗?然后db的Age设置成可空类型了吗?
T121581 2015-04-06
  • 打赏
  • 举报
回复
顶起来啊 控件数据绑定可空类型怎么处理啊?
T121581 2015-04-06
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
数据库为null,读取出来就是DBNull啊
我现在绑定的是对象 ,是往数据库添加时的对象。不是从数据库读出来的
  • 打赏
  • 举报
回复
数据库为null,读取出来就是DBNull啊
T121581 2015-04-06
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
//
        // 摘要: 
        //     创建将指定控件属性绑定到指定数据源的指定数据成员的绑定,同时可选地以指定的格式字符串启用格式设置、根据指定的更新设置将值传播到数据源、当从数据源返回
        //     System.DBNull 时将该属性设置为指定的值、设置指定的格式提供程序,并将该绑定添加到集合。
        //
        // 参数: 
        //   propertyName:
        //     要绑定的控件属性的名称。
        //
        //   dataSource:
        //     表示数据源的 System.Object。
        //
        //   dataMember:
        //     要绑定到的属性或列表。
        //
        //   formattingEnabled:
        //     若要格式化显示的数据,则为 true;否则为 false。
        //
        //   updateMode:
        //     System.Windows.Forms.DataSourceUpdateMode 值之一。
        //
        //   nullValue:
        //     当数据源值为 System.DBNull 时要应用于绑定控件属性的 System.Object。
        //
        //   formatString:
        //     一个或多个格式说明符,指示如何显示值
        //
        //   formatInfo:
        //     重写默认格式设置行为的 System.IFormatProvider 的实现。
        //
        // 返回结果: 
        //     新创建的 System.Windows.Forms.Binding。
        //
        // 异常: 
        //   System.ArgumentException:
        //     由 propertyName 给出的属性在该控件上不存在或者为只读。 - 或 - 数据源中不存在指定的数据成员。 - 或 - 指定的数据源、数据成员或控件属性与集合中的另一个绑定相关联。
        public Binding Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, DataSourceUpdateMode updateMode, object nullValue, string formatString, IFormatProvider formatInfo);
设置nullValue呢,这个有好几个重载方法
这个是DBNull 可是我绑定的是对象的属性为null,试过上面的方法 还是无效

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧