首先我想到是根据SqlCommand.ExecuteNonQuery 方法返回的int值进行判断,但是在MSDN上说ExecuteNonQuery返回受影响的行数,需要注意的是受影响的行数是执行 UPDATE、INSERT 或 DELETE 语句的结果,对于select语句它总是返回-1。。。
所以最好用SqlDataReader来实现,代码如下(注意一定要关闭SqlDataReader):
SqlCommand myCommand = cn_sql.CreateCommand();
myCommand.CommandText = "Select Teacher from Login where Teacher = '" + user + "'";
SqlDataReader myReader = myCommand.ExecuteReader();
if(myReader.Read())
{
myReader.Close();
myCommand.CommandText = "update Login set Lesson_ = '" + lessonid + "' where Teacher = '" + user + "'";
myCommand.ExecuteNonQuery();
}
else
{
myReader.Close();
myCommand.CommandText = "insert into Login VALUES ('" + user + "','" + lessonid + "')";
myCommand.ExecuteNonQuery();
}