У меня есть таблица в SQL Server, в которой есть столбец с именем sql_DateTime
типа datetime
.У меня также есть структура C #, которая отображается на одну запись из этой таблицы;в этой структуре есть член с именем m_DateTime
типа DateTime
.
. Моя проблема возникает после того, как я извлекаю запись из этой таблицы, используя DataSet
, а затем пытаюсь получить sql_DateTime
изDataset
в мою m_DateTime
переменную.Я получаю InvalidCastException
, когда пытаюсь сделать это аналогично тому, как я обрабатываю другие типы данных.
Тогда я надеюсь, что смогу использовать DateTimePicker
в моем графическом интерфейсе для отображения и установки даты ивремя.
Мой код прилагается для вашей справки.Спасибо за любые рекомендации.
public bool GetExperiment(ref Experiment exp, int ExperimentID, ref string statusMsg)
{
bool ret = true;
statusMsg = "GetExperiment: ";
try
{
// Open the connection
conn.Open();
// init SqlDataAdapter with select command and connection
string SelectString =
@"SELECT * " +
"FROM Experiment " +
"WHERE ExperimentID = " + ExperimentID.ToString();
SqlDataAdapter daExperiments = new SqlDataAdapter(SelectString, conn);
// fill the dataset
DataSet dsExperiments = new DataSet();
daExperiments.Fill(dsExperiments, "Experiment");
// assign dataset values to proj object that was passed in
exp.m_ExperimentID = (int)dsExperiments.Tables["Experiment"].Rows[0]["ExperimentID"];
exp.m_ProjectID = (int)dsExperiments.Tables["Experiment"].Rows[0]["ProjectID"];
exp.m_Name = (string)dsExperiments.Tables["Experiment"].Rows[0]["Name"];
exp.m_Description = (string)dsExperiments.Tables["Experiment"].Rows[0]["Description"];
exp.m_UserID = (int)dsExperiments.Tables["Experiment"].Rows[0]["UserID"];
// PROBLEM OCCURS HERE
exp.m_DateTime = (DateTime)dsExperiments.Tables["Experiment"].Rows[0]["DateTime"];
}
catch (Exception ex)
{
ret = false;
statusMsg += "Failed - " + ex.Message;
}
finally
{
// Close the connection
if (conn != null)
{
conn.Close();
}
}
return ret;
}
public class Experiment
{
public int m_ExperimentID;
public int m_ProjectID;
public string m_Name;
public string m_Description;
public int m_UserID;
public DateTime m_DateTime;
}