【问题标题】:Error: 'Field 'fieldname' doesn't have a default value'错误:'字段'fieldname'没有默认值'
【发布时间】:2017-08-16 22:15:46
【问题描述】:
if (comboBox2.Text == "A") {
  baglanti.Open();
  cmd = new MySqlCommand("SELECT `Sifreler`FROM `9sinifgiris` WHERE 1", baglanti);
  dr = cmd.ExecuteReader();
  if (dr.Read()) // Veriyi çektik
  {
    if (textBox1.Text == dr["Sifreler"].ToString()) {
      baglanti.Close();
      MessageBox.Show("Parola aynı giriş yap");
      button1.Enabled = true;
      baglanti.Open();
      cmd = new MySqlCommand("insert into 9sinifgiris (9A) Values ('TestText')", baglanti);
      cmd.ExecuteNonQuery(); // GETTİNG ERROR FROM HERE 
    } else {
      MessageBox.Show("Parola yanlış");
      textBox1.Clear();
    }
  }
  baglanti.Close();
}

我收到来自cmd.ExecuteNonQuery(); 的错误:

MySql.Data.MySqlClient.MySqlException: '字段 'Sifreler' 没有默认值'

我不想想要Sifreler 写入数据库,但错误在于这一行。

我曾经在我的旧项目中使用此代码,它运行良好。我想将我写入的文本添加到数据库中。

请帮忙。

【问题讨论】:

  • 错误很明显。填充该字段或更改架构级别的限制。
  • "我不想将 Sifreler 写入数据库" 好吧,您的数据库说您必须填写它,所以要么填写它,要么更改您的数据库。顺便说一句,完成后关闭连接即可。现在,您在内部 if 块内关闭和打开它非常令人困惑。
  • 您是想将文本添加到现有记录中,还是实际上插入一条新记录?
  • 请阅读How to Ask 并使用tourI am beginner... 是一个糟糕的标题 - 它没有告诉我们任何关于问题的信息。
  • 是的,先生,我明白了。其实我不知道我该如何解释我的问题。下次我会更好。

标签: c# mysql database


【解决方案1】:

您是否确保数据库设计中的该字段允许为空?或者您可能需要将其退出严格模式:https://stackoverflow.com/a/18751364/1830512

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2019-11-23
    • 2013-09-16
    相关资源
    最近更新 更多