Ошибка C# datatable 'столбец не принадлежит таблице'
Привет, я использую приведенный ниже код для записи данных из файла, разделенного запятыми, в таблицу SQL Server и сталкиваюсь со следующей ошибкой: столбец "Id" не принадлежит таблице.
private string writetotbl(IList<string> records) { string connString = ConfigurationManager.ConnectionStrings["myDBConnString"].ConnectionString; try { var lkup = from record in records let rec = records.Split(',') select new Lookup { Id = rec[0], Code = rec[1], Description = rec[2] }; DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("@Id", typeof(int))); dt.Columns.Add(new DataColumn("@Code", typeof(string))); dt.Columns.Add(new DataColumn("@Description", typeof(string))); DataRow dr = dt.NewRow(); foreach (var i in lkup) { dr = dt.NewRow(); dr["Id"] = i.Id.Replace("\"", ""); dr["Code"] = i.Code.Replace("\"", ""); dr["Description"] = i.Description.Replace("\"", ""); dt.Rows.Add(dr); } using (var conn = new SqlConnection(connString)) { conn.Open(); using (SqlBulkCopy s = new SqlBulkCopy(conn)) { s.DestinationTableName = "Lookup"; s.BatchSize = dt.Rows.Count; s.BulkCopyTimeout = 0; s.ColumnMappings.Add("Id", "Id"); s.ColumnMappings.Add("Code", "Code"); s.ColumnMappings.Add("Description", "Description"); s.WriteToServer(dt); s.Close(); } conn.Close(); } return (null); } catch (Exception ex) { errmsg = ex.Message; return (errmsg); } }
Не знаю, что может быть причиной этого.
Заранее спасибо..
Что я уже пробовал:
Не могли бы вы помочь мне с идеями? У меня есть все столбцы в файле, datatable соответствуют имени столбца в таблице базы данных и с соответствующим типом данных. Не знаю, как эта ошибка всплывает.