Когда моя хранимая процедура используется в моей веб-форме asp, я пытаюсь заставить ее захватить текущее время и дату. Информация будет храниться в столбце с типом данных datetime2. При заполнении моей формы, я получаю это ..int несовместим с datetime2
Операнда типа коллизии: INT несовместима с datetime2
command.Parameters.AddWithValue("@dt2LastLoginDate", SqlDbType.DateTime2);
Что следует использовать для того, чтобы сохранить дату и время в качестве правильного типа данных?
protected void Submit_Click(object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegDNMembershipConnectionString"].ConnectionString);
con.Open();
SqlCommand command = new SqlCommand("dbo.P_AddAccount");
command.Connection = con;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@nvcAccountName", TextBoxUN.Text));
command.Parameters.Add(new SqlParameter("@inyAccountLevelCode", 100));
command.Parameters.Add(new SqlParameter("inyCharacterCreateLimit", 4));
command.Parameters.Add(new SqlParameter("@inyCharacterMaxCount", 4));
var param = new SqlParameter("@dt2LastLoginDate", System.Data.SqlDbType.DateTime2);
param.Value = DateTime.Now;
command.Parameters.Add(param);
var wrongParam = new SqlParameter("@dt2LastLoginDate", System.Data.SqlDbType.DateTime2);
wrongParam.Value = System.Data.SqlDbType.DateTime2;
command.Parameters.Add(new SqlParameter("@vchLastLoginIP", null));
command.Parameters.Add(new SqlParameter("@@IntLastSessionID", null));
command.Parameters.Add(new SqlParameter("@vchJoinIP", null));
command.Parameters.Add(new SqlParameter("@inyPublisherCode", 4));
command.Parameters.Add(new SqlParameter("@inyGenderCode", null));
command.Parameters.Add(new SqlParameter("@DaTBirthDate", null));
command.Parameters.Add(new SqlParameter("@vchPassphrase", TextBoxPass.Text));
command.Parameters.Add(new SqlParameter("@inyNationalityCode", null));
command.Parameters.Add(new SqlParameter("@inyChannelPartnerCode", null));
command.Parameters.Add(new SqlParameter("@EmailAddress", TextBoxEA.Text));
command.Parameters.Add(new SqlParameter("@FullName", TextBoxFN.Text));
command.Parameters.Add(new SqlParameter("@Country", DropDownListCountry.SelectedValue));
command.ExecuteNonQuery();
con.Close();
}
Когда я добавляю как фрагменты в моем коде это 'DateTime' является «метод», который недопустим в данном контексте. Почему это? – user3219150
Вам определенно не нужны оба фрагмента. Просто используйте первый, второй - просто показывает, почему произошла ошибка. Теперь для вашей проблемы с методом DateTime вы можете переопределить стандартную переменную 'DateTime'. Измените 'param.Value = DateTime.Now;' на 'param.Value = System.DateTime.Now;' – Nico