-1

我应该如何在表中搜索int值?实际上,我的 sql 查询适用于字符串值,但不适用于数字。

SELECT * FROM [Book] WHERE ([bookId] = @bookId)

我正在使用 vs 并从文本框中获取值。在 gridview 中插入查询。

bookId是一个自动生成的INT值。

4

2 回答 2

1

假设你有表 A

+----------------+---------------------+------+-----+---------+----------------+
| Field          | Type                | Null | Key | Default | Extra          |
+----------------+---------------------+------+-----+---------+----------------+
| id             | int(11)             | NO   | PRI | NULL    | auto_increment | 
| data           | int(11)             | NO   | MUL | NULL    |                |

询问

select * from A where data = 3 

将返回表 A 中 int 值为 3 的所有数据

于 2013-01-19T21:09:21.480 回答
1

除非您向我们提供更多信息,否则这个问题很难回答。在这种情况下,有用的信息是Book表的表模式或 CREATE 语句,由表中的属性(或列)列表及其数据类型组成。了解您正在使用的数据库管理系统 (DBMS) 也会有所帮助,例如 MySQL、PostgreSQL、Microsoft SQL Server、Oracle 数据库等。

我假设您的表可以通过以下 CREATE 语句创建:

CREATE TABLE Book (
  bookId INT,
  bookTitle VARCHAR(30),
  bookAuthor VARCHAR(30),
  ..
);

在这种情况下,假设(再次)您的Book表包含bookId 为3 的书,以下查询应该可以正常运行:

DECLARE @bookId INT;
SET @bookId = 3;

SELECT *
FROM   [Book]
WHERE  ([bookId] = @bookId);

如果这不起作用,我猜你bookId属性的数据类型不是 INT,而是某种文本类型。但同样,仅使用您迄今为止提供的数据很难为您提供帮助。

于 2013-01-19T21:50:54.657 回答