Я работаю в базе данных ASP.NET C# и MySQL.Заявление с несколькими условиями, не возвращающими ожидаемое поведение в C#
В поле doDate
моей таблице базы данных я могу иметь три значения:
- Null
- 0000-00-00
- 2016-03-08
Мне нужно, когда значения поля doDate:
- 0000-00-00
- 2016-03-08
Отключена TextBoxtxtdoDate
и я попытался это:
txtdoDate1 = dr["doDate"] == DBNull.Value ? "" : dr["doDate"] == "0000-00-00" ? "0000-00-00" : Convert.ToDateTime(dr["doDate"]).ToString("dd/MM/yyyy");
if (txtdoDate1.ToString() != "")
{
txtdoDate.Text = txtdoDate1.ToString();
txtdoDate.Enabled = false;
}
else
{
txtdoDate.Enabled = true;
}
Но когда значения месторождения doDate
:
0000-00-00
TextBoxtxtdoDate
включена и пусто.
Не могли бы вы помочь мне разобраться с проблемой?
Заранее благодарен.
EDIT # 1
protected void loadsRecord()
{
using (OdbcConnection cn =
new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
{
sql = @" SELECT ..... ; ";
using (OdbcCommand command =
new OdbcCommand(sql, cn))
{
try
{
command.Connection.Open();
dr = command.ExecuteReader();
while (dr.Read())
{
txtdoDate1 = dr["doDate"] == DBNull.Value ? "" : (dr["doDate"] == "0000-00-00" ? "0000-00-00" : Convert.ToDateTime(dr["doDate"]).ToString("dd/MM/yyyy"));
if (txtdoDate1.ToString() != "")
{
txtdoDate.Text = txtdoDate1.ToString();
txtdoDate.Enabled = false;
}
else
{
txtdoDate.Enabled = true;
}
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
command.Connection.Close();
}
}
}
}
Что такое тип данных столбца doDate? – Steve
@Steve Спасибо, тип данных столбца doDate - это 'date' –
Я немного озадачен. Это не может работать при загрузке данных из базы данных. Значение '0000-00-00' не является допустимым значением NET DateTime, и вы должны получить сообщение об ошибке при его загрузке. Не могли бы вы показать код, который загружает эту запись из базы данных? – Steve