【问题标题】:Stuck on database procedure. Trying to display information in ASP.NET with an SQL Query卡在数据库过程中。尝试使用 SQL 查询在 ASP.NET 中显示信息
【发布时间】:2018-07-31 12:27:21
【问题描述】:

我在基于 ASP.NET 表单的网页上显示查询时遇到问题。

我正在尝试通过学生 ID 主键提取信息,但它不起作用。我在教科书或课程视频中的任何地方都找不到它。

CREATE PROCEDURE GetStudent
    @ StudentID int NOT NULL,
AS
BEGIN
  IF (@StudentID IS NOT NULL)
   SELECT * 
    FROM StudentDetail
     WHERE
      StudentID= @StudentID
END;

错误:

消息 102,级别 15,状态 1,过程 GetStudent,第 2 行 [Batch Start Line 0] 'int' 附近的语法不正确。

消息 137,第 15 级, 状态 2,过程 GetStudent,第 5 行 [批处理开始第 0 行] 必须 声明标量变量“@StudentID”。

消息 137,级别 15,状态 2, 程序 GetStudent,第 9 行 [Batch Start Line 0] 必须声明 标量变量“@StudentID”。

【问题讨论】:

  • @ StudentID 应该是 @StudentID 没有任何空格。这就是为什么它告诉你它没有听说过任何名为 @StudentID 的变量——当你把它和空格放在一起时它不明白你写了什么,所以它认为你没有定义那个变量。
  • 你的@StudentID是不是错字了,这个空格是不是错了? NOT NULL 之后的逗号也是无效的
  • 问题已经解决,非常感谢大家。
  • 对否决这个问题的人感到羞耻。它是有效的,写得很好,并且比我们在这里看到的许多问题更完整。我不了解其他人,但我已经盯着这样的代码看了 几个小时,想知道“为什么 ^#%*@# 不起作用?!?”,只是为了有人在 7 秒内发现了错误。

标签: sql sql-server tsql stored-procedures


【解决方案1】:

解决办法如下:

CREATE PROCEDURE GetStudent
    @StudentID int
AS
BEGIN
  IF (@StudentID IS NOT NULL)
   SELECT * 
    FROM StudentDetail
     WHERE
      StudentID= @StudentID
      ENd

【讨论】:

  • 另外一件事,这种特定类型的查询叫什么,我需要再做2个,一个用于删除,一个用于更新,所以我希望研究这些命令。
  • 这是简单的选择查询 (DML)。在存储过程中,您也可以编写删除和更新。您可以搜索合并语法,其中在单个查询中允许更新和删除。
猜你喜欢
  • 1970-01-01
  • 2015-03-19
  • 2016-06-21
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2017-04-16
  • 2017-04-07
  • 2011-10-08
相关资源
最近更新 更多