gpt4 book ai didi

c# - 在 C# 中第 1 行的 'Value1' 列数据被截断

转载 作者:行者123 更新时间:2023-11-29 04:45:04 24 4
gpt4 key购买 nike

我正在用 VS2010 c# 开发一个应用程序,以从 SQL Server 获取单行数据并将其插入 MySQL。

在这里,我正在获取数据并尝试使用以下代码插入 MySQL。

var msCon = new MySqlConnection(Properties.Settings.Default.dConstr);//open MySql connection
var mcmd = msCon.CreateCommand();
conSsDate = DateTime.Parse(ssDate).ToString("yyyy-MM-dd HH:mm:ss");
mcmd.CommandText = "INSERT INTO sfr_raw_aqi(date_time,station_id,Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9) VALUES(@date_time,@station_id,@Value1,@Value2,@Value3,@Value4,@Value5,@Value6,@Value7,@Value8,@Value9)";//passing insert command.
//adding parameters
mcmd.Parameters.AddWithValue("@date_time", conSsDate);
mcmd.Parameters.AddWithValue("@station_id", station);
mcmd.Parameters.AddWithValue("@Value1", Value1);
mcmd.Parameters.AddWithValue("@Value2", Value2);
mcmd.Parameters.AddWithValue("@Value3", Value3);
mcmd.Parameters.AddWithValue("@Value4", Value4);
mcmd.Parameters.AddWithValue("@Value5", Value5);
mcmd.Parameters.AddWithValue("@Value6", Value6);
mcmd.Parameters.AddWithValue("@Value7", Value7);
mcmd.Parameters.AddWithValue("@Value8", Value8);
mcmd.Parameters.AddWithValue("@Value9", Value9);
msCon.Open();
int count = mcmd.ExecuteNonQuery();//executing query.
msCon.Close();

当控制线出现时

int count = mcmd.ExecuteNonQuery();//executing query.

我收到第 1 行的“Value1”列数据被截断的错误信息。我不知道它是如何出现此错误的。

我的数据库架构如下。

CREATE TABLE `sfr_raw_aqi` (
`r_aqi` int(11) unsigned NOT NULL AUTO_INCREMENT,
`station_id` varchar(50) DEFAULT NULL,
`date_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Value1` float DEFAULT NULL,
`Value2` float DEFAULT NULL,
`Value3` float DEFAULT NULL,
`Value4` float DEFAULT NULL,
`Value5` float DEFAULT NULL,
`Value6` float DEFAULT NULL,
`Value7` float DEFAULT NULL,
`Value8` float DEFAULT NULL,
`Value9` float DEFAULT NULL,
`benzene` float DEFAULT NULL,
`mpxylene` float DEFAULT NULL,
`oxylene` float DEFAULT NULL,
`toluene` float DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`r_aqi`)
) ENGINE=InnoDB AUTO_INCREMENT=227 DEFAULT CHARSET=latin1;

建议我如何解决这个问题。

最佳答案

floatC# 中都是 32 位单精度和 mySQL所以如果你的 Value1 是 double那么它是 64 位 double 那么你就有问题了。我不是说你的 Value1 是 double 但这只是一个猜测。那么,为什么不通过以下任一方法将您的 Value1 转换为 float:

mcmd.Parameters.AddWithValue("@Value1", Convert.ToSingle(Value1));

mcmd.Parameters.AddWithValue("@Value1", float.Parse(Value1.ToString()));

mcmd.Parameters.AddWithValue("@Value1", (float)Value1);

关于c# - 在 C# 中第 1 行的 'Value1' 列数据被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20440261/

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