开发者

What SQL DataTypes to look for?

开发者 https://www.devze.com 2023-01-23 17:05 出处:网络
I wrote a code using c#- Visual 2008- that takes: 1- an excel sheet. 2- Opens a connection to Excel 3- Reads the Column names using the OleDbDataReader object and GetTableSchema method 开发者_Pytho

I wrote a code using c#- Visual 2008- that takes:

1- an excel sheet.

2- Opens a connection to Excel

3- Reads the Column names using the OleDbDataReader object and GetTableSchema method 开发者_Python百科

4- Added the Columns names in an array

5- Created a Table that has the same Column names as the EXcel sheet ( i used CREATE table

command)

6-Then once i have the table created in SQL , i loop over the excel rows an add the data into sql using Insert command.

Now My problem is:

In the " create table" command , i have to specify the DATATYPE for the column !i.e.

CREATE TABLE "table_name"
("column 1" "data_type_for_column_1",
"column 2" "data_type_for_column_2",
... )

HOW should i solve this problem? Are the datatypes that excel columns can be, the same as the datatypes in SQL server? is there some kind of mapping ? please help me out. thank you


OleDbDataReader.GetSchemaTable will give you what the underlying datatype is from the spreadsheet. This (quote):

Maps to the .NET Framework type of the column.

You then need to map that to the appropriate SqlDbType. Check out this other answer for ideas on how to do that.

The other point I wanted to raise as a side point, was to consider bulk loading the data from excel into SQL Server instead of "read a row / insert a row". I don't know what data volumes you're talking about, but that could speed the process up.


I believe you can use. sql_variant data type if you dont know what kind it is going to be? i'd take a look at that.

http://msdn.microsoft.com/en-us/library/ms173829.aspx


You can figure out the data type of the column using GetTableSchema()...

              DataTable  schema  =  rdr.GetSchemaTable();   

              foreach  (DataRow  row  in  schema.Rows)     
              {   
                    foreach  (DataColumn  col  in  schema.Columns)   
                          Console.WriteLine(col.DataType);   
              }   
0

精彩评论

暂无评论...
验证码 换一张
取 消