gpt4 book ai didi

C# MySQL 声称字段太长

转载 作者:行者123 更新时间:2023-11-29 05:43:14 25 4
gpt4 key购买 nike

这是 SQL:

CREATE TABLE patients 
(
patient_id INT AUTO_INCREMENT NOT NULL,
last_name VARCHAR(64) NOT NULL,
first_name VARCHAR(64),
sex CHAR(1),
birth DATE,
death DATE,
PRIMARY KEY (patient_id)
) ENGINE=INNODB;

这是 C#:

            MySqlCommand insertCom = new MySqlCommand("INSERT INTO patients(" +
"last_name, first_name, sex, birth) VALUES" +
"('@lastName', '@firstName', '@sex', '@birthDate')",
connection);

/* ... */
insertCom.Parameters.Add("@lastName", MySqlDbType.VarChar, 64);
insertCom.Parameters.Add("@firstName", MySqlDbType.VarChar, 64);
insertCom.Parameters.Add("@sex", MySqlDbType.Char, 1);
insertCom.Parameters.Add("@birthDate", MySqlDbType.Date);

insertCom.Parameters["@lastName"].Value = lastNameBox.Text;
insertCom.Parameters["@firstName"].Value = firstNameBox.Text;
insertCom.Parameters["@sex"].Value = (sexBox.Text == "Male" ? 'M' : 'F');
insertCom.Parameters["@birthDate"].Value = birthDatePicker.Text;

这是我在 SQL 中直接输入数据的方式:

INSERT INTO patients(last_name, first_name, sex, birth, death) 
VALUES
('DeLarge', 'Alexandra', 'F', '1975-12-02', NULL)

上面的工作,我写了基于它的 C# 代码。但是 C# 代码产生了这个:MySql.Data.MySqlClient.MySqlException:第 1 行“性别”列的数据太长。给了什么?

最佳答案

您不应该在参数名称周围使用单引号。试试这样:

MySqlCommand insertCom = new MySqlCommand("INSERT INTO patients(" +
"last_name, first_name, sex, birth) VALUES" +
"(@lastName, @firstName, @sex, @birthDate)",
connection);

关于C# MySQL 声称字段太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4796423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com