c#从datagridview插入mysql后,数据被截断

8aqjt8rx  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(439)

我制作了一个小应用程序,通过单击按钮自动将datagridview中的数据插入mysql表。我的问题是,在粘贴到mysql表之后,一些数据只是被截断了,因为它的字符串比表允许的多。这种情况发生时我没有注意到,我正在寻找解决办法。简单地增加mysql中的字符串数量并不是一个解决方案。最后,应该只保存真正没有自动缩短的数据记录。谢谢
这是我的密码:

private void button2_Click(object sender, EventArgs e)
    {
        for (int i = 0  ; i < dataGridView1.Rows.Count - 1; i++) // dòng
        {
                    string str = "server=xxxx; database=xxxx; uid=xxxx; pwd=xxxxxx;";
                    MySqlConnection constr = new MySqlConnection(str);
                    constr.Open();
                    String cmdText = "INSERT  INTO table (spalte1, spalte2, spalte3) VALUES ('"
                                               + dataGridView1.Rows[i].Cells[0].Value + "','"
                                               + dataGridView1.Rows[i].Cells[1].Value + "','"
                                               + Convert.ToDateTime(dataGridView1.Rows[i].Cells[2].Value).ToString("yyyy-MM-dd HH:mm:ss.fff") + "','"
                                               + dataGridView1.Rows[i].Cells[3].Value + "')";
                    MySqlCommand cmd = new MySqlCommand(cmdText, constr);
                    cmd.ExecuteNonQuery();
            constr.Close();
        }

    }
nwsw7zdq

nwsw7zdq1#

您想将mysql的sql模式设置为传统模式。这将启用严格的sql模式,在插入或更新期间截断数据时将引发错误。
正如其他人所评论的,一种用户友好的方法是,在用户尝试存储数据之前,让他们意识到限制。

相关问题