using vs 2003
the csv file has every field value enclosed in double quotes: i.e. no null
values
Whe using OleDbDataAdapter to read a csv file (I do create the schema.ini
file defining all columns as text) into a DataTable, fields that are an empty
string ("") are set to DBNull in my data table. I need to serialize this
dataset to an xml file and the lack of an empty node for all fields is a
problem.
Any solutions?
a short program follows
*****test.csv*****
FirstName,LastName,Sex
"kevin","williams","m"
"bob","le flambeur",""
*****test.csv*****
****schema.ini****
[test.csv]
ColNameHeader=True
Format=CSVDelimited
MaxScanRows=0
CharacterSet=OEM
Col1=FIRSTNAME TEXT
Col2=LASTNAME TEXT
Col3=SEX TEXT
****schema.ini****
****class1.cs****
class class1
{
[MTAThread]
static void Main(string[] args)
{
string constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\\mmproc\\;Extended
Properties=\"text;HDR=Yes;FMT=Delimited;IMAX=1\"";
DataSet ds = new DataSet("MyDataSet");
ds.Tables.Add(new DataTable("MyTable"));
DataTable dt = ds.Tables[0];
dt.Columns.Add("FirstName",typeof(string));
dt.Columns.Add("LastName", typeof(string));
DataColumn sexCol = dt.Columns.Add("Sex",typeof(string));
sexCol.DefaultValue = "";
OleDbCommand cmd = new OleDbCommand("select * from [test.csv]");
cmd.Connection = new OleDbConnection(constring);
cmd.CommandType = CommandType.Text;
OleDbDataAdapter adp= new OleDbDataAdapter();
using(OleDbConnection con = cmd.Connection)
{
con.Open();
adp.SelectCommand = cmd;
adp.Fill(dt);
}
ds.WriteXml("c:\\mmproc\\kevinDataset.xml");
}// main
}
****class1.cs****
****kevinDataset.xml****
<?xml version="1.0" standalone="yes"?>
<MyDataSet>
<MyTable>
<FirstName>kevin</FirstName>
<LastName>williams</LastName>
<Sex>m</Sex>
</MyTable>
<MyTable>
<FirstName>bob</FirstName>
<LastName>le flambeur</LastName>
</MyTable>
</MyDataSet>
****kevinDataset.xml****
--
kevin...