2015-04-09 2 views
0

Привет, я пытаюсь сохранить нулевое значение для datetime (fechaNac), но я не могу это сделать. Возможно ли это сделать, используя мой общий код в asp?null Значение времени данных

public int add(Cliente dato) 
     { 
      string cmdText = "insert into clientes values (@nombre, @apellido,@telefono,@celular,@oldtelefono, @oldcelular, @dni , @fechaNac)"; 
      Dictionary<string, Object> parametros = new Dictionary<string, Object>(); 
      parametros.Add("@nombre", dato.Nombre); 
      parametros.Add("@apellido", dato.Apellido); 
      parametros.Add("@telefono", dato.Telefono); 
      parametros.Add("@celular", dato.Celular); 
      parametros.Add("@oldtelefono", dato.OldTelefono); 
      parametros.Add("@oldcelular", dato.OldCelular); 
      parametros.Add("@dni", dato.Dni); 
      parametros.Add("@fechaNac", dato.FechaNac); 
      try 
      { 
       return this.setData(cmdText, parametros); 
      } 
      catch (Exception ex) 
      { 
       throw new Exception("No se pudo insertar el usuario en la base de datos", ex); 
      } 
     } 


     public int setData(string cmdText, Dictionary<string, Object> listaParametros) 
    { 
     int res; 
     using (SqlCommand cmd = new SqlCommand(cmdText, cn)) { 
      foreach (KeyValuePair<string, Object> parametro in listaParametros) { 
       cmd.Parameters.AddWithValue(parametro.Key, parametro.Value); 
      } 
      Conectar(); 
      try { 
       res = cmd.ExecuteNonQuery(); 
      } catch (Exception ex) { 
       throw new Exception("No se pudo insertar el dato", ex); 
      } finally { 
       Desconectar(); 
      } 
     } 
     return res; 
    } 

Заранее благодарю вас за помощь! Yanina

ответ

0

Да, но сначала вам необходимо объединить его в DBNull.Value.

cmd.Parameters.AddWithValue(parametro.Key, parametro.Value ?? DBNull.Value); 
+0

спасибо за ответ, он не работает, это исключение SQL я получил с этим кодом, «Имя столбца или указанные значения не соответствуют определению таблицы.» – user3767613

+0

Похоже, что есть другие, несвязанные проблемы со сценарием. Сначала попробуйте разрешить их в SSMS, а затем вернитесь в приложение. Также рекомендуется указать столбцы, в которые вы вставляете - значения «insert into clientses (columnName1, columnName2 и т. Д.) ...» –

+0

Я отлаживаю приложение, единственным параметром, которому присвоен null, является fechaNac. Я не могу найти то, что я делаю неправильно – user3767613