批量插入数据的时候出现这个问题。
解决办法:某个数据的长度应该是大于这个数据对应的列的定义长度。
所以一一检查到底是那个列的长度超出了。
网络提供了这个种方法,可以查找具体是哪个列的长度超出了。
public void GetFiledSizeTest() { string fileFullName = @"D:\GameLogs\2015-01-30_000000\Login.log"; //每列的最大长度 Dictionary<int, int> dicFieldLength = new Dictionary<int, int>(); //每列的最大长度所在行号 Dictionary<int, int> dicMaxFieldLenthRowNum = new Dictionary<int, int>(); for (int i = 0; i < 11; i++) { dicFieldLength.Add(i, 0); dicMaxFieldLenthRowNum.Add(i, 0); } if (new FileInfo(fileFullName).Length > 0) { using (StreamReader sr = new StreamReader(fileFullName, Encoding.UTF8)) { int rowNum = 0; while (sr.Peek() > -1) { string strRow = sr.ReadLine(); rowNum++; object[] objRow = strRow.Split(‘,‘); for (int i = 0; i < objRow.Length; i++) { var len=objRow[i].ToString().Length; if (dicFieldLength[i] < len) { dicFieldLength[i] = len; dicMaxFieldLenthRowNum[i] = rowNum; } } } } } }
时间: 2024-10-14 02:18:26