Как было указано в заголовке, не получается правильно извлечь Date из переменной DateTime. Вот мой код:
internal_pair.Key = "3/31/2001 12:00:00 AM" // Это ключ в Dictionary
IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);
DateTime dateAndTime = DateTime.Parse(internal_pair.Key.ToString(), culture, System.Globalization.DateTimeStyles.AssumeLocal);
var date = dateAndTime.Date;
cmd.Parameters["@DATE_TRIMESTER"].Value = date;
На выходи, в строке
cmd.Parameters["@DATE_TRIMESTER"].Value = date;
Мы всё равно получаем почему то "3/31/2001 12:00:00 AM", вместо "3/31/2001".
UPDATE 1: Весь код.
Dictionary<string, Dictionary<string, string>> aliasesAndDatesAndValues = dictionary;
SqlConnection conn = new SqlConnection("Server = homer; Database = RealState_RiskEngine; Integrated Security = True;");
conn.Open();
string SQLstr = string.Format("INSERT INTO {0} (ID_ACCOUNT, DATE_TRIMESTER, VALUE)" +
"VALUES ('@ID_ACCOUNT', '@DATE_TRIMESTER', '@VALUE')", databaseTable);
SqlCommand cmd = new SqlCommand(SQLstr, conn);
cmd.Parameters.Add("@ID_ACCOUNT", System.Data.SqlDbType.VarChar);
cmd.Parameters.Add("@DATE_TRIMESTER", System.Data.SqlDbType.Date);
cmd.Parameters.Add("@VALUE", System.Data.SqlDbType.Int);
foreach (var pair in aliasesAndDatesAndValues)
{
foreach (var internal_pair in (pair.Value))
{
cmd.Parameters["@ID_ACCOUNT"].Value = pair.Key.ToString();
IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);
DateTime dateAndTime = DateTime.Parse(internal_pair.Key.ToString(), culture, System.Globalization.DateTimeStyles.AssumeLocal);
var date = dateAndTime.Date;
cmd.Parameters["@DATE_TRIMESTER"].Value = date;
if (internal_pair.Value.Equals(""))
{
cmd.Parameters["@VALUE"].Value = 0;
}
else
{
cmd.Parameters["@VALUE"].Value = Int32.Parse(internal_pair.Value);
}
cmd.ExecuteNonQuery();
}
}
Подскажите, в чём может быть проблема?
P.S. Все эти манипуляции нужны, дабы отправить значение в базу данных SQL Server, в поле типа date.
Исходя из дискуссии в комментариях: SQL запросы не требуют заключения параметров в кавычки. Потому для решения проблемы следует поменять
string SQLstr = string.Format("INSERT INTO {0} (ID_ACCOUNT, DATE_TRIMESTER, VALUE)" +
"VALUES ('@ID_ACCOUNT', '@DATE_TRIMESTER', '@VALUE')", databaseTable);
на
string SQLstr = string.Format("INSERT INTO {0} (ID_ACCOUNT, DATE_TRIMESTER, VALUE)" +
"VALUES (@ID_ACCOUNT, @DATE_TRIMESTER, @VALUE)", databaseTable);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как создать новый проект в существующем решении в Visual Studio на Mac?
Люди добрые, помогитеПерешёл с UWP на WPF, по этому не могу простое
https://githubcom/RobinBuschmann/sequelize-typescript#foreignkey-belongsto-hasmany-hasone-belongstomany-api