2016-08-30 12 views
0

Iam пытается вставить большую часть первенствует в SQLSqlBulkCopy дает ошибку при преобразовании поплавка (asp.net C#)

sqlBulk.WriteToServer(dReader); дает ошибку

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

Иам используя ниже код

System.Data.SqlClient.SqlConnection strConnection; 
    strConnection = new System.Data.SqlClient.SqlConnection("Data Source=L06DPSGCD0001;Initial Catalog=ProductionEfficiency;User ID=sample;Password=sample"); 

    string path = ("C:\\Users\\s3802616\\Desktop\\" + (FileUpload1.FileName)); 

    System.Diagnostics.Debug.WriteLine("C:\\Users\\s3802616\\Desktop\\" + (FileUpload1.FileName)); 
    string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=" + "\"" + "Excel 12.0;HDR=YES;" + "\""; 
    //Create Connection to Excel work book 

    OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); 
    //Create OleDbCommand to fetch data from Excel 

    OleDbCommand cmd = new OleDbCommand("Select [Model],[Process],[STD_Hours],[UOM],[Section] from [Sheet1$]", excelConnection); 
    //OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", excelConnection); 
    excelConnection.Open(); 
    strConnection.Open(); 
    OleDbDataReader dReader; 
    dReader = cmd.ExecuteReader(); 
    SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection); 
    //Give your Destination table name 

    sqlBulk.DestinationTableName = "dbo.tblProcessStdHours"; 
    sqlBulk.WriteToServer(dReader); 
    excelConnection.Close(); 
    strConnection.Close(); 
    lblStatus.Text = "Uploaded Successfully"; 

Pls Suggest.

ответ

1

Ошибка говорит обо всем.

Вы пытаетесь скопировать строку "string/chars" в целевой столбец, который имеет тип "float".

Вам необходимо изменить тип данных целевого столбца в таблице базы данных «dbo.tblProcessStdHours» на varchar.

+0

Я также попробовал это, он дает {«Данное значение типа String из источника данных не может быть преобразовано в тип nvarchar указанного целевого столбца.»} –

+0

попробуйте с varchar –

+0

i меняем все на varchar по одному, наконец, он показывает «Получил недопустимую длину столбца от клиента bcp для colid 1.» Я думаю, это из-за Sl. который автоматически генерируется в sql. как сделать это в excel или мне нужно удалить «Sl» serial no from Sql. –