我将开始这个问题,说我知道这不是使用SQLite语句的最佳方式,但在学习时对我来说更容易。这是我的代码的一部分:
int horas1, minutos1, segundos1, horas2, minutos2, segundos2;
pausaString = "No";
TimeSpan ts = turriStopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}", ts.Hours, ts.Minutes, ts.Seconds);
MessageBox.Show(elapsedTime, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
string sql = "select tiempoPausado from Registros where pausado = 'SI' and enCurso = 'SI' and operacion = '" + operacionString + "' and operador = '" + operadorString + "'";
command = new SQLiteCommand(sql, conexion);
using (SQLiteDataReader reader2 = command.ExecuteReader())
{
if (reader2.Read())
{
string tiempoGuardado = reader2.GetString(0);
horas1 = Convert.ToInt16(tiempoGuardado.Substring(0, 2));
minutos1 = Convert.ToInt16(tiempoGuardado.Substring(3, 2));
segundos1 = Convert.ToInt16(tiempoGuardado.Substring(6, 2));
horas2 = Convert.ToInt16(elapsedTime.Substring(0, 2));
minutos2 = Convert.ToInt16(elapsedTime.Substring(3, 2));
segundos2 = Convert.ToInt16(elapsedTime.Substring(6, 2));
//MessageBox.Show(horas2 + ";" + minutos2 + ";" + segundos2, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
int sumaHoras = horas1 + horas2;
int sumaMinutos = minutos1 + minutos2;
int sumaSegundos = segundos1 + segundos2;
while (sumaSegundos >= 60)
{
sumaMinutos = sumaMinutos + 1;
sumaSegundos = sumaSegundos - 60;
}
while (sumaMinutos >= 60)
{
sumaHoras = sumaHoras + 1;
sumaMinutos = sumaMinutos - 60;
}
string horarioAGuardar = String.Format("{0:00}:{1:00}:{2:00}", sumaHoras, sumaMinutos, sumaSegundos);
//MessageBox.Show(horarioAGuardar, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
sql = "update Registros set tiempoPausado = '" + horarioAGuardar + "' AND pausado = 'NO' where enCurso = 'SI' AND operador = '" + operadorString + "' AND operacion = '" + operacionString + "'";
command = new SQLiteCommand(sql, conexion);
int rows = command.ExecuteNonQuery();
MessageBox.Show(rows.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
}
}
小时计算工作正常但是,假设tiempoAGuardar是“00:00:02”,我在tiempoPausado从我的数据库得到的是“0”而pausado没有改为'NO'。即使我用“asd”更改tiempoAGuardar,它也会在数据库中存储0。请帮忙,我一直试图解决这个问题。感谢
答案 0 :(得分:0)
UPDATE
语句的语法错误。
你有这个:
"update Registros set tiempoPausado = '" + horarioAGuardar + "' AND pausado = 'NO'
您需要用逗号替换AND
:
"update Registros set tiempoPausado = '" + horarioAGuardar + "', pausado = 'NO'
最有可能将AND pausado = 'NO'
解析为表达式的一部分,该表达式将被评估以形成tiempoPausado
的最终值。