I'm trying to import excel files to my website then save its content in the sql server my problem with sqlbulkcopy when it fill the database some column filled with wrong values which is NULL ! while the column have a not null double values !
here is the code:
void ImporttoDatatable()
{
try
{
if (FileUpload3.HasFile)
{
string FileName = FileUpload3.FileName;
string path = Path.Combine(Server.MapPath("~/ImportDocument"), Guid.NewGuid().ToString() + Path.GetExtension(FileUpload3.PostedFile.FileName));
FileUpload3.PostedFile.SaveAs(path);
using (OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + "; Extended Properties = \"Excel 8.0;HDR=Yes;IMEX=2\" "))
{
conn.Open();
OleDbcon.Open();
OleDbCommand command = new OleDbCommand("Select [IdOftable], [Time],[InstrumentLeftHand],[LeftSwitch],[LeftKnob],[ForceFeedbackLeftHand],[CumTimeLeftForceOverThreshold],[CumTimeLeftForceOver2xThreshold],[TranslationLeft_x],[TranslationLeft_y],[TranslationLeft_z],[quatLeft_x],[quatLeft_y],[quatLeft_z],[quatLeft_w],[InstrumentRightHand],[RightSwitch],[RightKnob],[ForceFeedbackRightHand],[CumTimeRightForceOverThreshold],[CumTimeRightForceOver2xThreshold],[TranslationRight_x],[TranslationRight_y],[TranslationRight_z],[quatRight_x],[quatRight_y],[quatRight_z],[quatRight_w],[BloodEmittedFrame],[BloodCurrentFrame],[TotalBloodEmitted],[TotalWhiteFibreCut],[TotalRedFibreCut],[Volume0_Brain],[Volume1_Tumor],[Volume2_Tumor] from [Sheet1$]", OleDbcon);
//OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(command);
DbDataReader dr = command.ExecuteReader();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{
bulkCopy.DestinationTableName = "MyExcel";
try
{
bulkCopy.BulkCopyTimeout = 400;
bulkCopy.WriteToServer(dr);
bulkCopy.BatchSize = 16000;
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
finally
{
dr.Close();
}
OleDbcon.Close();
bulkCopy.Close();
}
}
} lblmessage.Text = "The File Succssesfully Imported ";
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
and this is the sql table definition:
CREATE TABLE [dbo].[MyExcel] (
[IdOftable] NVARCHAR (50) NOT NULL,
[Time] FLOAT (53) NULL,
[InstrumentLeftHand] NVARCHAR (50) NULL,
[LeftSwitch] FLOAT (53) NULL,
[LeftKnob] FLOAT (53) NULL,
[ForceFeedbackLeftHand] FLOAT (53) NULL,
[CumTimeLeftForceOverThreshold] FLOAT (53) NULL,
[CumTimeLeftForceOver2xThreshold] FLOAT (53) NULL,
[TranslationLeft_x] FLOAT (53) NULL,
[TranslationLeft_y] FLOAT (53) NULL,
[TranslationLeft_z] FLOAT (53) NULL,
[quatLeft_x] FLOAT (53) NULL,
[quatLeft_y] FLOAT (53) NULL,
[quatLeft_z] FLOAT (53) NULL,
[quatLeft_w] FLOAT (53) NULL,
[InstrumentRightHand] NVARCHAR (50) NULL,
[RightSwitch] FLOAT (53) NULL,
[RightKnob] FLOAT (53) NULL,
[ForceFeedbackRightHand] FLOAT (53) NULL,
[CumTimeRightForceOverThreshold] FLOAT (53) NULL,
[CumTimeRightForceOver2xThreshold] FLOAT (53) NULL,
[TranslationRight_x] FLOAT (53) NULL,
[TranslationRight_y] FLOAT (53) NULL,
[TranslationRight_z] FLOAT (53) NULL,
[quatRight_x] FLOAT (53) NULL,
[quatRight_y] FLOAT (53) NULL,
[quatRight_z] FLOAT (53) NULL,
[quatRight_w] FLOAT (53) NULL,
[BloodEmittedFrame] NVARCHAR (50) NULL,
[BloodCurrentFrame] FLOAT (53) NULL,
[TotalBloodEmitted] FLOAT (53) NULL,
[TotalWhiteFibreCut] FLOAT (53) NULL,
[TotalRedFibreCut] FLOAT (53) NULL,
[Volume0_Brain] FLOAT (53) NULL,
[Volume1_Tumor] FLOAT (53) NULL,
[Volume2_Tumor ] FLOAT (53) NULL,
PRIMARY KEY CLUSTERED ([IdOftable] ASC)
);
There is no exceptions when i ran the code but when i checked the data inside the server it has nulls for some values which is not suppose to be null =(
I use visual studio express 2012 for web. What to do to correct it?
Thank You