在SQL表中插入记录的Insert函数工作正常,但更新记录的Update函数工作不正常

本文关键字:工作 函数 更新 新记录 不正常 Update 记录 插入 Insert SQL | 更新日期: 2023-09-27 18:24:53

这些是我在SQL数据库中更新学生记录和插入学生记录的函数

public void UpdateStudent(ref student stu, string rollno) //Update the values to corresponding roll number 'rollno'
        {
            try
            {
                connection.Open();  //I have already defined the connection and command
                command = new SqlCommand("update student set FirstName='"+stu.Firstname+"',LastName='"+stu.Lastname+"',YearOfAdmission="+stu.Yearofadmission+",Branch='"+stu.Branch+"' where RollNo='"+rollno+"'", connection); //Yearofadmission is int
                command.ExecuteNonQuery();
        }
        catch (Exception)
        {
            throw;
        }
        finally
        {
            if (connection != null)
                connection.Close();
        }
    }
public void insertstudent(ref student s)
        {            
            try
            {
                connection.Open();
                command = new SqlCommand("insert into student values('"+s.Rollno+"','"+ s.Firstname+"','"+s.Lastname+"',"+s.Yearofadmission+",'"+s.Branch+"','"+s.Password+"')", connection);                 
                command.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;           
            }
            finally
            {
                if (connection != null)
                    connection.Close();
            }
        }

我的第二个将值插入SQL表的函数"insertstudent"工作正常,并将值正确插入数据库表。但是第一个函数"更新学生"并没有更新数据库表中的值。它也没有提供任何错误。那么我错在哪里了?


提前感谢!

在SQL表中插入记录的Insert函数工作正常,但更新记录的Update函数工作不正常

检查以确保传递给更新函数的rollno是正确的。如果该命令没有抛出错误,则很可能它执行正确,并且由于没有记录命中所提供的rollno而导致不更新任何内容。

在更新函数的开头放置一个断点,并检查提供的rollno值。

此外,插入语句中的roll no是"s"的子集,而在更新中,它是单独提供的,您可能需要检查这是否正常。

正确使用参数。您还需要处置连接和命令对象。

 using (connection = new SqlConnection("connectionstring"))
    {
    using (command = connection.CreateCommand())
    {
    command.CommandText = "update student set FirstName= @FirstName  ,LastName= @LastName, YearOfAdmission= @YearOfAdmission, Branch=@Branch WHERE RollNo= @RollNo";
    command.Parameters.AddWithValue("@FirstName", stu.FirstName);
    command.Parameters.AddWithValue("@LastName", stu.LastName);
    command.Parameters.AddWithValue("@YearOfAdmission", stu.YearOfAdmission);
    command.Parameters.AddWithValue("@Branch", stu.Branch);
    command.Parameters.AddWithValue("@RollNo", stu.RollNo);
       connection.Open();
                    command.ExecuteNonQuery();
    connection.Close();
    }
    }