nar86 Ответов: 2

Заданное значение типа string из источника данных не может быть преобразовано в тип int указанного целевого столбца.


импорт данных excel в таблицу sql server

Код выглядит следующим образом

protected void btnexport_Click(object sender, EventArgs e)
        {
            if (!FileUpload1.HasFile)
            {
      string CurrentFilePath = string.Concat(Server.MapPath("~/masterdata/Test1.xlsx" + FileUpload1.FileName));
                 FileUpload1.SaveAs(CurrentFilePath);

     string constr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES;""", CurrentFilePath);

                    OleDbConnection connection = new OleDbConnection();
                    connection.ConnectionString = constr;
     OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
                    connection.Open();
       System.Data.Common.DbDataReader dr = command.ExecuteReader();
     string sqlConnectionString = @"Data Source = DESKTOP; Initial Catalog = Sample; User ID = sa; Password = 12345";
                     
                    SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString);
                    bulkInsert.DestinationTableName = "tbl_farmerregistration_ivorycoast";
                    bulkInsert.WriteToServer(dr);


В режиме запуска я нажимаю кнопку экспорта и отладки и показывает ошибку следующим образом

Заданное значение типа String из источника данных не может быть преобразовано в тип int указанного целевого столбца.

как решить эту ошибку.

Что я уже пробовал:

импорт данных excel в таблицу sql server

Код выглядит следующим образом

protected void btnexport_Click(object sender, EventArgs e)
        {
            if (!FileUpload1.HasFile)
            {
      string CurrentFilePath = string.Concat(Server.MapPath("~/masterdata/Test1.xlsx" + FileUpload1.FileName));
                 FileUpload1.SaveAs(CurrentFilePath);

     string constr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES;""", CurrentFilePath);

                    OleDbConnection connection = new OleDbConnection();
                    connection.ConnectionString = constr;
     OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection);
                    connection.Open();
       System.Data.Common.DbDataReader dr = command.ExecuteReader();
     string sqlConnectionString = @"Data Source = DESKTOP; Initial Catalog = Sample; User ID = sa; Password = 12345";
                     
                    SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString);
                    bulkInsert.DestinationTableName = "tbl_farmerregistration_ivorycoast";
                    bulkInsert.WriteToServer(dr);


В режиме запуска я нажимаю кнопку экспорта и отладки и показывает ошибку следующим образом

Заданное значение типа String из источника данных не может быть преобразовано в тип int указанного целевого столбца.

как решить эту ошибку.

2 Ответов

Рейтинг:
2

OriginalGriff

Посмотрите на сообщение об ошибке:

Цитата:
Заданное значение типа String из источника данных не может быть преобразовано в тип int указанного целевого столбца.
Это довольно ясно: у вас есть столбец, содержащий нечисловые данные, которые вы пытаетесь отобразить в целочисленном столбце.

Мы ничего не можем с этим поделать - у нас нет доступа к вашим данным excel или к вашей базе данных ... поэтому посмотрите на свои данные и выясните, какими они должны быть, что это такое и почему. Тогда вы можете подумать о том, чтобы исправить это.

Но мы ничего не можем сделать для вас!


Рейтинг:
1

Naveen senagasetti

Привет,

Похоже, что при вставке данных Excel в базу данных преобразование типов отсутствует, пожалуйста, перепроверьте тип данных Excel с типом данных SQL.