这些是我在SQL batabase中更新学生记录和插入学生记录的功能。
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();
}
}
我的第二个函数'insertstudent'将值插入SQL表正常工作并将值正确插入数据库表。但是第一个函数'Update student'没有更新数据库表中的值。它也没有提供任何错误。 那我错了?
提前谢谢!
答案 0 :(得分:0)
检查以确保传递给更新功能的rollno是否正确。如果命令没有抛出错误,很可能它正在正确执行并最终没有更新任何内容,因为没有记录命中提供的rollno。
在更新功能开始时设置一个断点,并检查提供的rollno值。
另外,滚动号码。在你的insert语句中是's'的子集,而在update中,它是单独提供的,你可能需要检查是否正常。
答案 1 :(得分:0)
使用参数的正确方法。您还需要处理连接和命令对象。
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();
}
}