搜索
查看: 978|回复: 11

请教下面的语句该怎么写?

[复制链接]

3

主题

8

帖子

49

积分

新手入门

Rank: 1

积分
49
发表于 2017-12-7 21:07:46 | 显示全部楼层 |阅读模式
sql="SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号=  winform.edit.text "
回复

使用道具 举报

12

主题

679

帖子

3996

积分

荣誉会员

子非魚、安知魚之樂

Rank: 8Rank: 8

积分
3996
发表于 2017-12-7 21:17:26 | 显示全部楼层
sql="SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号=" + winform.edit.text

你把变量写到“”引号里面,就成字符串了!

回复

使用道具 举报

3

主题

8

帖子

49

积分

新手入门

Rank: 1

积分
49
 楼主| 发表于 2017-12-7 21:22:37 | 显示全部楼层
谢谢,我这样写了还是报错,但写成
sql="SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号=‘012345789’ " 就OK,不知道为什么,edit里面写012345789就不行?
回复

使用道具 举报

186

主题

2536

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13930
发表于 2017-12-7 21:39:57 | 显示全部楼层
bluemoon 发表于 2017-12-7 21:22
谢谢,我这样写了还是报错,但写成
sql="SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号= ...

你的012345789外面有引号你没写。
按范例里用格式化参数的写法去写,就不用考虑这些东西。
回复

使用道具 举报

3

主题

8

帖子

49

积分

新手入门

Rank: 1

积分
49
 楼主| 发表于 2017-12-8 15:38:50 | 显示全部楼层
Jacen.He 发表于 2017-12-7 21:39
你的012345789外面有引号你没写。
按范例里用格式化参数的写法去写,就不用考虑这些东西。

谢谢老大指点,对格式化参数那块不太懂。继续学学再改代码。
回复

使用道具 举报

186

主题

2536

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13930
发表于 2017-12-8 15:52:54 | 显示全部楼层
bluemoon 发表于 2017-12-8 15:38
谢谢Jacen指点,对格式化参数那块不太懂。继续学学再改代码。

用的是哪个数据库呢?

sql语句应当很多都支持两种参数格式化,一种是调用string.format格式化,

例如
db.exec("SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号=‘%s’", winform.edit.text)

就算是拼接,你也不要丢掉单引号:
db.exec("SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号= '" + winform.edit.text+ "' "  )


如果是使用数据库的命令参数可以不需要写引号,
总之你要保持最后生成的SQL符合SQL语法。

回复

使用道具 举报

3

主题

8

帖子

49

积分

新手入门

Rank: 1

积分
49
 楼主| 发表于 2017-12-8 16:27:19 | 显示全部楼层
受教了!再问一个问题,我用的access数据库,发现编译后发到其他没装access的电脑上不能运行,装了access数据引擎也不行,有没有不装access的办法?
回复

使用道具 举报

12

主题

679

帖子

3996

积分

荣誉会员

子非魚、安知魚之樂

Rank: 8Rank: 8

积分
3996
发表于 2017-12-8 18:25:24 | 显示全部楼层
Jacen.He 发表于 2017-12-8 15:52
用的是哪个数据库呢?

sql语句应当很多都支持两种参数格式化,一种是调用string.format格式化,

才发现这个是发到教程版的 移个板块吧

点评

已移动,谢谢  发表于 2017-12-8 18:26
回复

使用道具 举报

186

主题

2536

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13930
发表于 2017-12-8 22:35:08 | 显示全部楼层
bluemoon 发表于 2017-12-8 16:27
受教了!再问一个问题,我用的access数据库,发现编译后发到其他没装access的电脑上不能运行,装了access数 ...

access扩展库使用的是系统自带的组件。并不需要在电脑上安装access.
除非你在连接数据库时,改动并使用了新版access数据库才支持的连接参数,你不必要这么做的。
回复

使用道具 举报

186

主题

2536

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13930
发表于 2017-12-8 23:00:18 | 显示全部楼层
access里这样写参数
//将查询结果转换为普通数组
var result = db.getTable("SELECT 用户编号,用户名称,联系电话 FROM Users where 用户编号 = @uid",{
    uid =  winform.edit.text
});
打开数据库直接写:
//创建数据库
var db = access("/test.mdb")
不要自己改成其他连接参数。

回复

使用道具 举报

3

主题

8

帖子

49

积分

新手入门

Rank: 1

积分
49
 楼主| 发表于 2017-12-9 08:53:45 | 显示全部楼层
OK啦,谢谢Jacen指点~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-8-15 10:45 , Processed in 0.078126 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表