Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么这个插页不起作用`_C#_Oracle10g - Fatal编程技术网

C# 为什么这个插页不起作用`

C# 为什么这个插页不起作用`,c#,oracle10g,C#,Oracle10g,实际上,我的代码应该检查课程选择\u教师表中是否有任何值。如果没有,那么它将在表中插入一些值。现在,这一次表中没有值。因此dr2.Read()应该返回false并执行else部分。但它正在做相反的事情。如果你能在这方面帮助我,我将非常高兴 string oradb = "Data Source=localhost;User Id=system;Password=cse;"; OracleConnection conn = new OracleConnection(oradb); // C# c

实际上,我的代码应该检查
课程选择\u教师表中是否有任何值。如果没有,那么它将在表中插入一些值。现在,这一次表中没有值。因此
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();

datareader有属性.HasRows来检查结果是否有一些行。这将是检查您打算做什么的正确方法

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

也许我的眼睛欺骗了我,但是指定的数据库名称在哪里?我已经有一段时间没有接触过Oracle了,但通常ConnectionString中包含数据库的名称。另一种实现方法是查询count(*)并检查返回结果,因为您没有对从select接收到的结果执行任何操作*