我尝试使用Visual Studio 2015将记录插入到本地SQL数据库的表中。代码永远不会返回错误,但实际上从未插入记录。
try
{
conn.Open();
SqlCommand inscmd = new SqlCommand();
inscmd.Connection = conn;
inscmd.CommandText = "INSERT INTO Attendance (StudentID,DatePresent) VALUES (@StudentID, @DatePresent)";
inscmd.Parameters.AddWithValue("@StudentID", intStudentId);
inscmd.Parameters.AddWithValue("@DatePresent", DateTime.Now.ToString());
inscmd.ExecuteNonQuery();
MessageBox.Show(((ExtendedButton)sender).Text + " has been marked as present.");
conn.Close();
}
catch(SqlException ex)
{
MessageBox.Show(ex.ToString());
}
当我运行代码时,弹出消息框,说明学生已被添加到考勤记录中。当我关闭应用程序以查看表中的实际数据时;该数据不存在。
我的" Catch"消息框永远不会出现。
答案 0 :(得分:1)
如果ExecuteNonQuery返回1,则表示它已影响1行。因此,看起来该命令正在运行并且正在发生其他事情。要么你没有看正确的地方,要么正确的桌子或其他东西;或者该行被删除它的触发器或稍后的回滚事务 - 显式或隐式删除。你可以尝试在结束前明确提交。
因此,您需要进一步检查代码或数据库。