0
我从数据表插入值到SQL表,我得到“转换数据类型错误”。我的源文件是固定宽度,我使用子字符串来获取这些值。如何将字符串数据类型转换为从数据表到SQL表的字符串数据类型
Source:
Amount Name Id Date
-33,167.74 NHP 1,503 05/09/2017
这是我的代码使用数据表
private DataTable InsertDataTable()
{
DataTable datatable = new DataTable();
datatable.Columns.Add("Id", typeof(int));
datatable.Columns.Add("amount", typeof(decimal));
datatable.Columns.Add("name", typeof(string));
datatable.Columns.Add("date", typeof(datetime));
//--inserting datatable
foreach (string row in columns)
{
datarow["Id"] = Convert.ToInt32(row.Substring(51, 12).Trim().Replace(",", ""));
datarow["Amount"] = Convert.ToDecimal(row.Substring(0, 9).Trim());
datarow["date"] = Convert.ToDateTime(row.Substring(12, 18).Trim());
datarow["name"] = Convert.ToDecimal(row.Substring(20, 35).Trim());
datatable.Rows.Add(datarow);
}
}
private void InsertSqlTable()
{
DataTable finaldatatable = InsertDataTable();
//sql connection--------------------
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
{
//Set the database table name
sqlBulkCopy.DestinationTableName = "[dbo].[table]";
sqlBulkCopy.ColumnMappings.Add("id", "id");
sqlBulkCopy.ColumnMappings.Add("amount", "amount");
sqlBulkCopy.ColumnMappings.Add("name", "name");
sqlBulkCopy.ColumnMappings.Add("date", "date");
}
}
我的目标表列和数据类型
id int
name string
amount money
date datetime
我正在转换误差为所有的数据下面插入SQL表类型除字符串外。也是我的ID是1,503,我想1503. 你们中的任何人都可以帮助我转换为正确的数据类型,也消除ID的逗号? 任何帮助表示赞赏!
如果我正确地计数,量应具有位置0 10个字符,对不对?这些子字符串的位置都是关闭的,他们不是? –
由于这是模拟数据,我的子字符串值不同。首先,我想知道如何从数据表中的任何值中删除逗号。 – chits
无法帮助您使用C#,其他人需要在那里指导您。但是这并没有改变“-33,167.74”包含10个字符并且你的子字符串长度只有9的事实。 –