为什么这个插件不起作用

本文关键字:不起作用 插件 为什么 | 更新日期: 2023-09-27 17:58:40

实际上,我的代码是用来检查course_choice_teacher表中是否有任何值的。如果没有,那么它将在表中插入一些值。现在这一次表中没有值。因此dr2.Read()应该返回false并执行else部分。但它正在做相反的事情。如果你帮我做这件事,我会很高兴的。

string oradb = "Data Source=localhost;User Id=system;Password=cse;";
OracleConnection conn = new OracleConnection(oradb);  // C#
conn.Open();
OracleCommand cmd2 = new OracleCommand();
cmd2.Connection = conn;
cmd2.CommandText = "select * from course_choice_teacher where teacher_id='"+teacher_home.st+"' and choice_no=1";
cmd2.CommandType = CommandType.Text;
OracleDataReader dr2 = cmd2.ExecuteReader();
if (dr2.Read())
{
   MessageBox.Show("Already Given");
}
else
{
   OracleCommand cmd = new OracleCommand();
   cmd.Connection = conn;
   cmd.CommandText = "insert into course_choice_teacher values('" + teacher_home.st + "','" + dataGridView1.CurrentRow.Cells["course_id"].Value.ToString() + "',1)";
   cmd.CommandType = CommandType.Text;
   OracleDataReader dr = cmd.ExecuteReader();
   dr.Read();
}
conn.Dispose();

为什么这个插件不起作用

数据读取器具有属性.HasRows来检查结果是否有一些行。这将是检查你打算做什么的正确方法。

if (dr2.HasRows)
{
    MessageBox.Show("Already Given");
}
else
{
  .........
}