【发布时间】:2013-12-24 18:28:59
【问题描述】:
我正在 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.
我收到错误 Data truncated for column 'Value1' at row 1。我不知道它是如何给出这个错误的。
我的数据库架构如下。
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;
告诉我如何解决这个问题。
【问题讨论】:
-
您尝试在
Value1中插入的数据是什么? -
@bansi 我只是插入 4-5 位数字
-
我想知道变量
Value1的数据类型是什么?或者您是否尝试通过在Value1行提供断点进行调试? -
它适用于我sqlfiddle.com/#!2/3abdba/1 问题可能在 C# 中
标签: c# mysql insert insert-update