c# – 数据源中String类型的给定值无法转换为指定目标列的int类
发布时间:2020-12-16 02:03:53 所属栏目:百科 来源:网络整理
导读:我试图从xml文件中读取值,然后使用bulkcopy将数据插入到我的数据库中. 我正在使用一个自定义类: class Customer { public int CustomerID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public int ShowsNumb
我试图从xml文件中读取值,然后使用bulkcopy将数据插入到我的数据库中.
我正在使用一个自定义类: class Customer { public int CustomerID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public int ShowsNumber { get; set; } public int VisitNumber { get; set; } public int Cancellation { get; set; } } 我读了这样的数据: List<Customer> customersList = ( from e in XDocument.Load(file).Root.Elements("cust") select new Customer { CustomerID = (int)e.Attribute("custid"),FirstName = (string)e.Attribute("fname"),LastName = (string)e.Attribute("lname"),ShowsNumber = (int)e.Attribute("count_noshow"),VisitNumber = (int)e.Attribute("count_resos"),Cancellation = (int)e.Attribute("count_cancel"),}).ToList(); 然后我将customersList插入到这样的数据表中: DataTable dataTable = getBasicDataTable(); for (int i = 0; i < customersList.Count; i++) { DataRow datarows = dataTable.NewRow(); datarows[0] = customersList[i].CustomerID; datarows[1] = customersList[i].FirstName; datarows[2] = customersList[i].LastName; datarows[3] = customersList[i].ShowsNumber; datarows[4] = customersList[i].VisitNumber; datarows[5] = customersList[i].Cancellation; dataTable.Rows.Add(datarows); } 然后我将数据插入我的数据库,如下所示: 但我得到了这个例外 using (SqlBulkCopy sbc = new SqlBulkCopy(GetConnectionString())) { sbc.DestinationTableName = XMLReader.databaseTable; sbc.WriteToServer(dataTable); }
如你所见,当我从我的xml中提取数据时,我已经使用了强制转换为int和字符串,它正在工作.那么为什么在插入数据库时??我得到了那个例外? 注意 为了给你整个代码,这是getBasicDataTable函数 private DataTable getBasicDataTable() { DataTable dataTable = new DataTable(); dataTable.Clear(); dataTable.Columns.Add("customerID"); dataTable.Columns.Add("firstName"); dataTable.Columns.Add("lastName"); dataTable.Columns.Add("showsNumber"); dataTable.Columns.Add("visitNumber"); dataTable.Columns.Add("cancellation"); return dataTable; } 解决方法
在定义数据表时,需要将列指定为整数.像这样:-
dataTable.Columns.Add("customerID",typeof(int)); 编辑: CustomerID (INT) FirstName (VARCHARNVARCHAR) LastName (VARCHARNVARCHAR) ShowsNumber (INT) VisitNumber (INT) Cancellation (INT) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- findViewById() returns null for custom component in lay
- Swift UITableView相关功能(六)
- ios – 如何在Swift中使用MarqueeLabel?
- 如何在C [声明]中声明指向结构数组的指针
- C# winform 模拟键盘输入自动接入访问网络的实例
- .Net AJAX表格控件-不写一行代码就能做复杂AJAX应用
- iphone – 如何使用xib创建UIView子类?
- 在oracle 11g中生成样本数据
- 主流NoSQL数据库评测之HandlerSocket
- u-boot-2014.10移植第21天----添加nand flash命令支持(三)