以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]ComboBox 不绑定字段 显示列是字符 取值列是整型 报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139093)

--  作者:haibingxinyi
--  发布时间:2019/8/5 19:18:00
--  [求助]ComboBox 不绑定字段 显示列是字符 取值列是整型 报错
如题,ComboBox 没有绑定字段,设置了数据表,显示列:名称 取值列:_Identify 下拉的时候就报错 提示输入的字符串格式不正确 如下: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.FormatException: 输入字符串的格式不正确。 在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.String.System.IConvertible.ToInt32(IFormatProvider provider) 在 System.Data.Common.Int32Storage.ConvertValue(Object value) 在 System.Data.Index.FindNodeByKey(Object originalKey) 在 System.Data.Index.FindRecordByKey(Object key) 在 System.Data.DataView.FindByKey(Object key) 在 Foxtable.oOOo 0Oo.o O 0OO () 在 Foxtable.oOOo 0Oo.o  oO0 o(Object A_0, EventArgs A_1) 在 System.Windows.Forms.Control.OnGotFocus(EventArgs e) 在 System.Windows.Forms.TextBox.OnGotFocus(EventArgs e) 在 C1.Win.C1Input.C1TextBox.OnGotFocus(EventArgs e) 在 C1.Win.C1Input.C1DropDownControl.OnGotFocus(EventArgs e) 在 System.Windows.Forms.Control.WmSetFocus(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.TextBoxBase.WndProc(Message& m) 在 System.Windows.Forms.TextBox.WndProc(Message& m) 在 C1.Win.C1Input.C1TextBox.WndProc(Message& m) 在 C1.Win.C1Input.C1DropDownControl.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 如果把取值列改成字符串格式的如名称就正常。 但是:如果将此ComboBox 绑定上字段,他就不会报错了。 请教如何解决?
--  作者:有点蓝
--  发布时间:2019/8/5 20:25:00
--  
无法解决。另外建议不要使用_Identify做业务关联,不可控的,建议使用自编号
--  作者:haibingxinyi
--  发布时间:2019/8/6 10:08:00
--  为什么用_Identify做关联不可控?
1、为什么用_Identify做主键不可控,能举例说明吗? 2、如果我自己关联的话必须用字符型的吗?
--  作者:有点蓝
--  发布时间:2019/8/6 10:28:00
--  
首先_Identify是自动创建的,无法手工控制,新行在保存前和保存后这个值可能不一样。其次如果迁移数据库,整个表的_Identify可能都会被重置。总之问题多多
--  作者:haibingxinyi
--  发布时间:2019/8/6 10:33:00
--  我能自己更改主键吗?
如果我用普通自编号比如00001 DH0001 这样的字符串类型的编码做关联。 那我能把_Identify的主键去掉吗?采用我自己的编号做主键。 对ft有什么影响
[此贴子已经被作者于2019/8/6 10:33:51编辑过]

--  作者:有点蓝
--  发布时间:2019/8/6 10:38:00
--  
可以去掉,基本没有影响,只不过新增行不能使用table.addnew,需要使用datatable.addnew,添加后必须马上给主键赋值。

建议保留_Identify的主键,编号做普通列即可,没有什么冲突的