我正在尝试将数据插入MS Access
数据库,我正在使用DataGridView
作为DataSource
。 DataGridView
填充了select
查询,该查询从另一个数据库获取数据。
我使用DataGridView
,因为我很容易使用insert
循环DataGridViewRow
。
我在变量中添加了一些DataRow
,然后我使用两个“if”和一个“else”来从包含DataGridView
值的DateTime
中选择一个字段并拆分其数据我将在insert
查询中使用的两个变量之间。
但是我没有从“if”获取任何值,并且变量只在数据库的一行中插入“01/01/2001 00:00:00”,因为它很快会抛出“重复值” “错误,意味着”for“循环被执行,但”if“内的条件什么都没有。 请查看我的代码,告诉我你是否能找到问题所在。 提前感谢您的关注。
<code>
private void firstLaunchBtn_Click(object sender, EventArgs e)
{
dtGV = timeTankDGV.Rows.Count;
lore = dtGV - 1;
dtp = dateTimePicker1.Value;
tiempo.Open();
try
{
for (i = 0; i < lore; i++)
{
idNum = Convert.ToString(timeTankDGV.Rows[i].Cells["IdentificationNumber"].Value);
epName = Convert.ToString(timeTankDGV.Rows[i].Cells["Name"].Value);
idUser = Convert.ToInt32(timeTankDGV.Rows[i].Cells["IdUser"].Value);
recordType = Convert.ToInt32(timeTankDGV.Rows[i].Cells["RecordType"].Value);
record = Convert.ToDateTime(timeTankDGV.Rows[i].Cells["RecordTime"].Value);
// int result1 = record.TimeOfDay- turn1Start.TimeOfDay;
//int result2 = record.Hour.CompareTo(startLimit1.Hour);
// int insult1=record.Hour.CompareTo(turn1End.Hour);
//MessageBox.Show("RecordTime "+record.TimeOfDay);
//MessageBox.Show("turno1Start "+turn1Start.TimeOfDay);
//MessageBox.Show("start1Limit "+startLimit1.TimeOfDay);
if (record.TimeOfDay <= turn1Start.TimeOfDay && record.TimeOfDay >= startLimit1.TimeOfDay && recordType == 0)
{
horaEntrada = Convert.ToDateTime(timeTankDGV.Rows[i].Cells["RecordTime"].Value);
//horaEntrada = Convert.ToDateTime(record.ToString("yyyy-MM-dd H:mm:ss tt"));
//MessageBox.Show("(-_-) " + horaEntrada);
}
else
{
if (record.TimeOfDay >= turn1End.TimeOfDay && recordType == 1)
{
horaSalida = Convert.ToDateTime(timeTankDGV.Rows[i].Cells["RecordTime"].Value);
//horaSalida = Convert.ToDateTime(record.ToString("yyyy-MM-dd H:mm:ss tt"));
//MessageBox.Show("(-_-) " + horaSalida);
}
}
/**/
//horaSalida = DateTime.Now;
OleDbCommand comando = new OleDbCommand();
comando.Connection = tiempo;
string consulta = "insert into Horarios (IdUser,IdNumber,Nombre,Turno,RecordType,WorkHourIn,WorkHourOut)" + " values(@IdUser,@IdNumber,@Nombre,@Turno,@RecordType,@WorkHourIn,@WorkHourOut)";
comando.CommandText = consulta;
OleDbDataAdapter datos = new OleDbDataAdapter(comando);
turno = 1;
comando.Parameters.AddWithValue("@IdUser", idUser);
comando.Parameters.AddWithValue("@IdNumber", idNum.ToString());
comando.Parameters.AddWithValue("@Nombre", epName.ToString());
comando.Parameters.AddWithValue("@Turno", turno);
comando.Parameters.AddWithValue("@RecordType", recordType);
//MessageBox.Show("entrada "+horaEntrada);
comando.Parameters.AddWithValue("@WorkHourIn", horaEntrada.ToString("yyyy-MM-dd H:mm:ss tt"));
//MessageBox.Show("salida "+horaSalida);
comando.Parameters.AddWithValue("@WorkHourOut", horaSalida.ToString("yyyy-MM-dd H:mm:ss tt"));
status = comando.ExecuteNonQuery();
}
if (status > 0)
{
MessageBox.Show("insercion completa :-D");
}
else
{
MessageBox.Show("insercion fallida -_-");
}
} // INSERTED !!!
catch (Exception ex)
{
MessageBox.Show("error " + ex);
}
finally
{
tiempo.Close();
}
} // INSERTED !!!
<code>