如何从数据库中检索数据并存储到Foxpro 9中的文本框中

时间:2014-02-22 10:16:42

标签: foxpro visual-foxpro

如何将select语句中的数据存储到文本框中 我不知道怎么做这个,因为这是我第一次使用foxpro我需要这个用于我的工作申请请帮帮我。
表名: emp4win
IDNUM
名字
姓氏
中间名
解决
联系

cm=thisform.cmb1.Text
SELECT * FROM emp4win WHERE idnum=cm

数据应存储在以下内容中:

txtfirstname.text
txtlastname.text
txtmiddlename.text
txtaddress.text
txtaddress.text
txtcontact.text<br/>

2 个答案:

答案 0 :(得分:1)

假设该表是本机VFP .dbf文件,我将回答。有很多方法可以做到这一点,一种方法是使用普通的VFP表处理,如下所示:

USE emp4win IN 0                  &&Open table
LOCAL cm
cm = thisform.cmb1.Text
*Validate the value of the input textbox here
SELECT emp4win                    &&Make the table active
LOCATE FOR idnum=cm               &&Search for the row you want
IF NOT FOUND("emp4win")
    *Handle error when the record doesn't exists
ENDIF
*From now on, just populate textboxes with the found data
thisform.txtfirstname.text = emp4win.firstname
thisform.txtlastname.text = emp4win.middlename
thisform.txtmiddlename.text = emp4win.lastname
thisform.txtaddress.text = emp4win.address
thisform.txtcontact.text = emp4win.contact

另一个选择是使用内置的VFP SQL引擎进行搜索,就像你已经完成的那样,只需要一个catch,记住你必须指出保存结果的位置才能使用它,几乎总是使用INTO CURSOR子句(然后从该光标读取),否则,就像在您的示例中一样,它将显示在BROWSE窗口中,这在应用程序中完全没用。

答案 1 :(得分:0)

您非常接近查询并获得结果...如果您使用没有“INTO”子句的SQL查询,它只会将结果拉到浏览显示网格中。通过添加一个INTO子句,它将放入一些内存空间,如数组或另一个游标(但也可能是另一个永久表,但不建议)。然后,您可以将这些值拉入文本框的文本属性...

我通常会对游标进行操作(我在其中使用“C_”作为结果集的前缀,以确定它是临时游标与实际表格,并始终预先关闭表格,以防我需要将其保留为未来在初始设置之后使用。这样,在最新查询后没有残余。

use in select( "C_MyTmpResult" )
SELECT * FROM emp4win 
   WHERE idnum=cm
   into cursor C_MyTmpResult

数据应存储在以下内容中:

txtfirstname.Value = C_MyTmpResult.FirstName
txtlastname.Value = C_MyTmpResult.LastName
txtmiddlename.Value  = C_MyTmpResult.MiddleName
txtaddress.Value = C_MyTmpResult.Address
txtcontact.Value = C_MyTmpResult.Contact

你有2个地址行,但是在Address1和Address2之间没有区别,可能只是一个发布疏忽,但如果你有两个地址行,上下文仍然适用。