Re[3]: Создание временной таблицы
От: horry Россия  
Дата: 21.09.07 19:51
Оценка:
Здравствуйте, McFozzy, Вы писали:

MF>Здравствуйте, horry, Вы писали:


H>>Здравствуйте, McFozzy, Вы писали:


MF>>>есть ли способ создать временную таблицу иными путями без большого количества строк?


H>>Как минимум, два:

H>>1. Создать схему данных (XMLSchema) и загрузить структуру из нее.
H>>2. Создать массив с названиями столбцов и сделать Add в цикле. Т.к. все они, кроме ID, строковые, то даже тип хранить не придется (ID отдельно сделать — и все).


MF>вот вот, мне первый метод больше нравится — потому что он более универсален...


MF>а как это зделать? может можно код?


Код на C# — с бейсиком не работаю, но отличия должны быть только в точках с запятыми — код типовой.

Вначале 1 раз ручками генерим таблицу и записываем ее в файл схемы:
DataTable table = new DataTable();
table.Columns.Add("ID", System.Type.GetType("System.Int32"));
table.Columns.Add("Name", System.Type.GetType("System.String"));
table.Columns.Add("Phone", System.Type.GetType("System.String"));
table.Columns.Add("Fax", System.Type.GetType("System.String"));
table.Columns.Add("email", System.Type.GetType("System.String"));

DataSet ds = new DataSet();
ds.Tables.Add(table);
ds.WriteXmlSchema("myfile.xsd");


В итоге должно получиться:

Затем этот код можно смело удалять, а загрузку структуры делать следующим образом:

DataSet ds = new DataSet();
ds.ReadXmlSchema("myfile.xsd");
DataTable table = ds.Tables[0];


Обращаю внимание на тот факт, что при запуске будет исключение, если не создать ни одной строки:

DataRow r = table.NewRow();
r["ID"] = 1;
r["Name"] = "qqq";
r["Phone"] = "www";
r["Fax"] = "eee";
r["email"] = "ggg";
table.Rows.Add(r);
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.