在 C# asp.net 中找不到表 0

本文关键字:找不到 net asp | 更新日期: 2023-09-27 18:24:26

                if (ds.Tables[0].Rows.Count > 0)
                {
                    txtid.Text = ds.Tables[0].Rows[0]["id"].ToString();
                    txttamil.Text = ds.Tables[0].Rows[0]["Tamil"].ToString();
                    txtenglish.Text = ds.Tables[0].Rows[0]["English"].ToString();
                    txtmaths.Text = ds.Tables[0].Rows[0]["Maths"].ToString();
                    txtscience.Text = ds.Tables[0].Rows[0]["Science"].ToString();
                    txtsocialscience.Text = ds.Tables[0].Rows[0]["SocialScience"].ToString();
                }
            }

在上面显示的错误"找不到表 0"。

当我输入无效的id时,它需要显示"ID不存在"。

我可以知道,我的代码中犯了什么错误吗?

存储过程:

ALTER PROCEDURE sp_studentresult
(
    @id int,
    @output varchar(50) output,
    @id_student varchar(50)
)
AS
IF EXISTS (SELECT * FROM student WHERE id=@id_student)
BEGIN
SELECT * from studentresult where id_student=@id
END
ELSE
BEGIN
SET @output='Doesn not EXIST'
End

任何帮助将不胜感激。谢谢

在 C# asp.net 中找不到表 0

逻辑使 sp 复杂化是没有意义的。

为什么不只检查查询是否返回了任何数据?

if (ds.Tables[0].Rows.Count > 0)
{
    txtid.Text = ds.Tables[0].Rows[0]["id"].ToString();
    txttamil.Text = ds.Tables[0].Rows[0]["Tamil"].ToString();
    txtenglish.Text = ds.Tables[0].Rows[0]["English"].ToString();
    txtmaths.Text = ds.Tables[0].Rows[0]["Maths"].ToString();
    txtscience.Text = ds.Tables[0].Rows[0]["Science"].ToString();
    txtsocialscience.Text = ds.Tables[0].Rows[0]["SocialScience"].ToString();
}
else
{
    // Whatever you want to do if no row is found
}

还有一个更简单的sp,如果找不到任何内容,它将返回一个空表

ALTER PROCEDURE sp_studentresult
(
    @id int
)
AS
-- I have removed the extra id column as not sure why you use it
SELECT * from studentresult where id_student=@id

如果 ID 不存在,则 SP 不会返回任何表格数据。 尝试将其更改为类似

IF NOT EXISTS (SELECT * FROM student WHERE id=@id_student)
BEGIN
    SET @output='Does not EXIST'
END
SELECT * from studentresult where id_student=@id