建立学生表
create table S(
SNO nchar(10),
SNAME nchar(20),
SSEX nchar(4),
SAGE int,
SADDR nchar(40),
PRIMARY KEY(SNO),
)
插入数据
INSERT INTO S VALUES(95001,'王明','男',24,'威海')
INSERT INTO S VALUES(95002,'王明2','男',24,'南海')
INSERT INTO S VALUES(95003,'王明3','女',14,'北海')
INSERT INTO S VALUES(95004,'王明4','男',34,'威海')
INSERT INTO S VALUES(95005,'王明5','男',25,'南海')
INSERT INTO S VALUES(95006,'王明6','男',24,'西海')
控件属性
控件类型 |
名称 |
属性 |
值 |
StaticText |
st_1 |
Text |
结果显示列表 |
|
st_2 |
Text |
输入家庭地址: |
SingleLineEdit |
sle_1 |
Text |
|
CommandButton |
cb_1 |
Text |
查询 |
ListView |
lv_1 |
|
|
窗口界面
应用的open函数
SQLCA.DBMS = "ADO.Net"
SQLCA.LogPass = ""
SQLCA.LogId = ""
SQLCA.AutoCommit = False
SQLCA.DBParm = "Namespace='System.Data.OleDb',Provider='SQLOLEDB',DataSource='',Database='hit'"
CONNECT USING SQLCA;//连接数据库
OPEN(main)
main窗口的按钮点击事件
lb_1.Reset();//清空列表
String addr,SNO,SNAME,SSEX;
int SAGE ;//定义主变量
addr= sle_1.text;//读取文本框中用户输入的地址
DECLARE S_ADDR CURSOR FOR
SELECT SNO,SNAME,SSEX,SAGE
FROM S
WHERE SADDR=:addr;
//定义游标 S_ADDR
OPEN S_ADDR;//打开游标
FETCH S_ADDR INTO :SNO,:SNAME,:SSEX,:SAGE;
IF SQLCA.SQLCODE<>0 THEN
lb_1.AddItem('Not Found'+addr);//如果不存在返回未找到
END IF
DO WHILE SQLCA.SQLCODE=0//逐行写入列表中
lb_1.AddItem(SNO+SNAME+SSEX+string(SAGE)+addr);
FETCH S_ADDR INTO :SNO,:SNAME,:SSEX,:SAGE;
LOOP
CLOSE S_ADDR;//关闭游标