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接收到的结果执行任何操作*