gpt4 book ai didi

C# MySqlCommand Insert 显示 fatal error 命令

转载 作者:行者123 更新时间:2023-11-29 22:06:14 24 4
gpt4 key购买 nike

我有一个具有以下类型的 table (Horario):

id (int, auto increment)
codMedico (int)
dia (Date)
horarioInicio (Time)
horarioFim (Time)
status_id (int)

我在下面的代码中看不到任何问题,但它只是向我显示了 mysqlException 上的“ fatal error ”(在 ExecuteNonQuerry() 方法中抛出。我在文本字段中收到了两次时间 (11:10) 和 (12 :10),以及日期选择器中的日期。

代码如下:

public bool agendaMedico_Novo(String codMedico, DateTime dia, String hrInicio, String hrFim, int status_id)
{
if (bdConn.State == ConnectionState.Open)
{
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = bdConn;

cmd.CommandText = "INSERT INTO horario (id, codMedico, dia, horarioInicio, horarioFim, status_id) VALUES (1, ?codMedico, ?dia, ?horarioInicio, ?horarioFim, ?status_id)";
// cmd.CommandText = "INSERT INTO horario (codMedico, dia, horarioInicio, horarioFim, status_id) VALUES ("+codMedico+", "+dia.ToDate()+", "+"11:12"+ ", "+ "12:13"+ ", 1"+")";
try
{

cmd.Parameters.Add("?codMedico", MySqlDbType.Int16).Value = Int16.Parse(codMedico);

}

catch (Exception e)
{
MessageBox.Show("Cod invalido!");

}
try
{
MessageBox.Show(dia.ToDate().ToString());
cmd.Parameters.Add("?dia", MySqlDbType.Date).Value = dia.ToDate();
}

catch (Exception e)
{
MessageBox.Show("Dia invalido!");

}
try
{
cmd.Parameters.Add("?horarioInicio", MySqlDbType.Time).Value = DateTime.Parse(hrInicio);

}
catch (Exception e)
{
MessageBox.Show("Horario Invalido");

}
try
{
cmd.Parameters.Add("?horarioFim", MySqlDbType.Time).Value = DateTime.Parse(hrFim);

}
catch (Exception e)
{
MessageBox.Show("Horario Invalido");

}
try
{
cmd.Parameters.Add("?status_id", MySqlDbType.Int16).Value = status_id;
}

catch (Exception e)
{
MessageBox.Show("dasasdasd");
}

MessageBox.Show(cmd.CommandText);

//try
//{

try
{
cmd.ExecuteNonQuery();
}

catch (MySqlException m)
{
MessageBox.Show(m.StackTrace);
MessageBox.Show(m.Message);
}

return true;
}
else
{
MessageBox.Show("Erro de banco de dados. Tente novamente mais tarde");
return false;
}
//return 0;
}

最佳答案

我认为这是因为您尝试将值 (1) 插入到 id 自动增量列中:

cmd.CommandText = "INSERT INTO horario (id, codMedico, dia, horarioInicio, horarioFim, status_id) VALUES (1, ?codMedico, ?dia, ?horarioInicio, ?horarioFim, ?status_id)";

请在您的 CommandText 上尝试此操作:

cmd.CommandText = "INSERT INTO horario (codMedico, dia, horarioInicio, horarioFim, status_id) VALUES (?codMedico, ?dia, ?horarioInicio, ?horarioFim, ?status_id)";

数据库将为id生成它自己的值,因此您不需要!

关于C# MySqlCommand Insert 显示 fatal error 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com