如何在Form间传递参数?利用DBComboBox--300分(300分)

  • 主题发起人 主题发起人 cnnoah
  • 开始时间 开始时间
C

cnnoah

Unregistered / Unconfirmed
GUEST, unregistred user!
Form1中DBComboBox1,DBComboBox2选择参数后
Form2中显示相应的数据,
我的办法:
unit1 中定义全局变量P,我定义在impelementation上的var中,(P:String;)
unit2中 uses unit1;
P1:=Form1.P; {P1为Form2中定义的局部变量}
可运行中总提示P未声明,这是怎么一会事?

另外还有一个问题就是,我把DBComboBox中的Items项编程加入进去后,运行后下拉列表框
是我加入的数据,可为什么我一点选某项后在DBComboBox上的edit框中什么都没有显示?
我设Style:csDropDown

 
大哥,他说你P没有声明,是因为你的P是全局的,所以直接P1 := P就可以了,而你的
TForm1并没有P这个方法。
(其实我的做法一般是利用公开的属性的,在一般情况下我不大用全局变量的)
第二个问题是不是你没有设定正确的dataSource以及DataField?
 
3X
第一个问题大部分解决了,又出现新问题
ADODataSet1.CommandText:='select * from txcs where ZBSD='+P1;
这个语句有问题吗?(李维的书中就是直接调用string值,而没加双引号的。
(D5 ADO/MTS/COM+高级程序设计篇P.76))
第二个问题是我试验使用一个DBComboBox时出现的问题,因为第一个问题的出现
无法知道Form1中DBComboBox运行是否有问题,所以试验中我的dataSet是select col1 from
table1,DBComboBox的dataSource和dataField均没有问题。
 
如果你的ZBSD是字符类型,就要加双引号。
ADODataSet1.CommandText:='select * from txcs where ZBSD="'+P1 + '"';
 
3x
问题就是我的ZBSD是数值型,但P1是字符型,该怎么办呢?
 
看起来没错,有什么错误信息?
 
to huawdg
不知道你说的哪部分的代码看起来没错?
现在的问题是
ADODataSet1.CommandText:='select * from txcs where ZBSD="'+P1+'"';
P1的参数无法传递到SQL语句中
 
打开profile 监视一下就知道了
 
//问题就是我的ZBSD是数值型,但P1是字符型,该怎么办呢?
//ADODataSet1.CommandText:='select * from txcs where ZBSD='+P1;
你的P1是不是都是数字表示的字符啊?如果P1中出现有非数字的字符,肯定通不过啦。

还有其他问题贴出来,不过解决了要给我分,再有不要无休止的提问。
 
P的申明要放在Interface部分,而不是impelementation中.
访问时也不是Form1.p,而是Unit1.P
 
同意 lindeping
 
unit1中声明的全局变量,在unit2中需uses unit1,然后在程序中直接引用,不必加前缀,
直接就是P,就可以了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部