异常错误表示不存在数据。编码可能出错
Exception error says no data is present. Possible error in coding
我有两个数据库。
我正在尝试获取 test2 中的最新 ID 并将该 ID 转发给 test
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) +"')";
应该有数据,因为我检查了我的table数据,有很多记录是我故意填写的。好像哪里不对?
SqlDataReader 仅向前 reader.The 从 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 注入攻击。
我有两个数据库。 我正在尝试获取 test2 中的最新 ID 并将该 ID 转发给 test
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) +"')";
应该有数据,因为我检查了我的table数据,有很多记录是我故意填写的。好像哪里不对?
SqlDataReader 仅向前 reader.The 从 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 注入攻击。