У меня есть небольшая проблема с созданием новой таблицы в базе данных. Я создаю новую таблицу в моем объекте DataSet
, но эта таблица не создается в физической базе данных. Таблица создается только в кеше. Зачем?Почему DataSet не создает новую таблицу в базе данных?
Мой код:
SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Projects\ConsoleApplication6\ConsoleApplication6\Data.sdf");
SqlCeDataAdapter sCEdata = new SqlCeDataAdapter("select * from [Cats]", con);
DataSet ds = new DataSet();
sCEdata.Fill(ds);
DataColumn ID = new DataColumn("ID", typeof(int));
ID.AllowDBNull = false;
ID.AutoIncrementSeed = 0;
ID.AutoIncrement = true;
ID.AutoIncrementStep = 1;
ID.ReadOnly = true;
ID.Unique = true;
DataColumn Name = new DataColumn("Name", typeof(string));
DataColumn Owner = new DataColumn("Owner", typeof(string));
DataColumn Note = new DataColumn("Note", typeof(string));
DataTable Cats2 = new DataTable("Cats2");
Cats2.Columns.AddRange(new DataColumn[]{ID, Name, Hozain, Note});
DataRow dr1 = Cats2.NewRow();
DataRow dr2 = Cats2.NewRow();
DataRow dr3 = Cats2.NewRow();
dr1["Name"] = "Pavel"; dr1["Owner"] = "Sergey"; dr1["Note"] = "Starii";
dr2["Name"] = "Gleb"; dr2["Owner"] = "Inga"; dr2["Note"] = "Tupaya";
dr3["Name"] = "Dusia"; dr3["Owner"] = "Olga"; dr3["Note"] = "Zlaya";
Cats2.Rows.Add(dr1);
Cats2.Rows.Add(dr2);
Cats2.Rows.Add(dr3);
dr2["Note"] = "Guzelle";
ds.Tables.Add(Cats2);
SqlCeCommandBuilder build = new SqlCeCommandBuilder(sCEdata);
sCEdata.Update(ds);
Наборы данных не делают этого. – SLaks
Как вы ожидаете, что база данных будет знать, что вы создаете без какой-либо действительной команды Sql, также вы делаете только Select, который возвращает данные объекту, а не Create .. где есть команда Create Table ..? Я думаю, вам нужно переосмыслить свой подход и записать шаги в отношении того, что вы хотите сделать. Также посмотрите, как использовать команду CreateTable в sql – MethodMan
здесь хорошее место, чтобы начать чтение @polyakov_s http: // stackoverflow. com/questions/1348712/create-a-sql-server-table-from-ac-sharp-datatable – MethodMan