FillSchema是用来向DataTable中填入详细的元数据信息的,例如(column names, primary key, constraints等),但不填入数据。
Fill主要是用来填入数据的,它在缺省情况下只填入少量必要的元数据信息,例如(column names, data types)。
所以,一般先用FillSchema来填入详细的元数据信息,再用Fill来填充数据,例如:
sqlDataAdapter1.FillSchema(dataSet1,SchemaType.Source,"authors");
sqlDataAdapter1.Fill(dataSet1,"authors");
DataColumn[] colArr;
colArr = dataSet1.Tables["authors"].PrimaryKey;
MessageBox.Show("Column Count: " + colArr.Length.ToString());
for(int i = 0; i < colArr.Length; i++)
{
MessageBox.Show(colArr[i].ColumnName + " " + colArr[i].DataType.ToString());
}
在上例中,如果不调用FillSchema, 缺省情况下不会填如PrimaryKey信息。