异常错误表示不存在数据。可能的编码错误

Posted

技术标签:

【中文标题】异常错误表示不存在数据。可能的编码错误【英文标题】:Exception error says no data is present. Possible error in coding 【发布时间】:2017-10-05 02:57:25 【问题描述】:

我有两个数据库。 我正在尝试获取 test2 中的最新 ID 并将该 ID 转发给测试

    SqlCommand readcmd = new SqlCommand("select MAX(PID) from test2;");
    SqlDataReader rdr = cmd.ExecuteReader();
    rdr.Read();
    int pid = (int)rdr["PID"];
    cmd.CommandText = "insert into test (PID) values ('"+ rdr.GetInt32(0) +"')";

应该有数据,因为我检查了我的表格数据,并且有很多我故意填写的记录。似乎有什么问题?

【问题讨论】:

【参考方案1】:

SqlDataReader 是一个只向前的读取器。从 SqlDataReader 返回的数据流中读取的典型方法是使用 while 循环遍历每一行。

SqlCommand readcmd = new SqlCommand("select MAX(PID) from test2;");
SqlDataReader rdr = cmd.ExecuteReader();
int pid = 0;
if(rdr.HasRows)
  
        while (rdr.Read())
        
           pid = rdr.GetInt32(0);
        

cmd.CommandText = "insert into test (PID) values (@pid)";
cmd.Parameters.AddWithValue("@pid", pid);

此外,一般情况下,您不应将变量直接连接到命令文本中。改为使用参数来防止 SQL 注入攻击。

【讨论】:

感谢您的回答。请问什么是demoXml? 查看更新后的答案。如果这解决了您的问题,请接受此帖子作为答案。

以上是关于异常错误表示不存在数据。可能的编码错误的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础——常见异常及错误

Nightwatchjs:如何在不创建错误/失败/异常的情况下检查元素是不是存在

通过异常处理错误(中)

js 捕获异常和抛出异常

java知识点三:异常

初学Python常见异常错误,总有一处你会遇到!