0

パラメータ化されたクエリがあり、正常に機能していましたが、de DBを削除して、同じ値とすべてで再作成すると、値sexoで値NULLを挿入できないという例外がスローされますが、すべての値は割り当てられた、ここにコードがあります:

    try{
      var cmdPersona_Log = new SqlCommand();
      cmdPersona_Log.Parameters.Clear();
      cmdPersona_Log.Connection = mySqlConnection;
      cmdPersona_Log.CommandType = CommandType.Text;
      cmdPersona_Log.CommandText = @"INSERT INTO [Tomin].[TominRH].[Persona_Log] "
       + "([Id_Action],[Id_User],[Id_Date],[Id_Entidad],[Nombre],[Paterno],[Materno],[Sexo],[Id_Nacionalidad])"
       + " Values (1, 'Admin', @fecha, @id_entidad, @nombre, @paterno, @materno, @sexo, 52)";
      cmdPersona_Log.Parameters.AddWithValue("@fecha", DateTime.Now);
      cmdPersona_Log.Parameters.AddWithValue("@id_entidad", dbRow["CUENTA"].ToString().Trim());
      cmdPersona_Log.Parameters.AddWithValue("@nombre", nombre ?? string.Empty);
      cmdPersona_Log.Parameters.AddWithValue("@paterno", paterno ?? string.Empty);
      cmdPersona_Log.Parameters.AddWithValue("@materno", materno ?? string.Empty);
      cmdPersona_Log.Parameters.AddWithValue("@sexo", 1);
      cmdPersona_Log.ExecuteNonQuery();
   }
   catch(Exception e) 
   {
      MessageBox.Show(dbRow["CUENTA"] + " Persona_log  " + e.ToString());
   } 

DBを確認しましたが、問題はないようです。

4

3 に答える 3

2

パラメータタイプが正しくAddWithValue推測されない場合があります。/の代わりに/bitを使用してください:truefalse10

cmdPersona_Log.Parameters.AddWithValue("@sexo", true);
于 2012-08-31T22:05:39.390 に答える
0

nullではないはずのテーブルのすべてのフィールドがINSERT句にリストされていることを確認してください

于 2012-08-31T21:13:46.257 に答える
0

cmd.Parameters.Add("@SomeID", SqlDbType.Int, 4).Value = SqlDbTypeについて明示できるこのフォームを使用してみ ましたか?

于 2012-08-31T22:13:25.300 に答える