Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание пустой таблицы со структурой таблицы-шабл 
:(
    Опции темы
Vova14
  Дата 10.3.2011, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.2.2011

Репутация: нет
Всего: нет



В базе SQL Server Compact имеется таблица без записей - что-то вроде шаблона.
Как создавать таблицы, используя структуру этого шаблона .
PM MAIL   Вверх
puZzo
Дата 11.3.2011, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



http://www.cyberforum.ru/csharp-net/thread185033.html

может чем поможет

з.ы.: и кстати обязательно структуру нужно получать программно? может достаточно будет сделать один раз запрос, на создание твоей таблицы? Если конечно структура не будет меняться)

Это сообщение отредактировал(а) puZzo - 11.3.2011, 09:59
PM ICQ   Вверх
Vova14
Дата 12.3.2011, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.2.2011

Репутация: нет
Всего: нет



Можно добавить таблицу в базу так
Код

  public static bool CreateSqlCeTable(String conStr, String fies)
    {
      SqlCeConnection conn = new SqlCeConnection(conStr);
      try
      {
          //пробуем подключится
        conn.Open();
      }
      catch (SqlException se)
      {
        Console.WriteLine("Ошибка подключения при создании таблицы:{0}",se.Message);
        return false;
      }
      SqlCeCommand cmdCreateTable = new SqlCeCommand("CREATE TABLE " + fies, conn);
      
      //посылаем запрос
      try
      {
        cmdCreateTable.ExecuteNonQuery();
      }
      catch(SqlException se) 
      {
        Console.WriteLine("Ошибка при создании таблицы:{0}",se.Message);
        return false;
      }
      //закрвываем соединение
      conn.Close();
      conn.Dispose();
      return true;
    }

Нужен похожий код для создания пустых таблиц со структорой таблицы, имеющейся в базе
Та таблица-шаблон создаётся визуально - так удобнее и создать и потом изменять
PM MAIL   Вверх
puZzo
Дата 12.3.2011, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



если делаешь визуально, то в процессе работы программы меняться шаблон не будет? или всеже будет? сгенерируй в редакторе таблиц твоем, SQL запрос на создание таблицы, вроде это у всех есть, и этот запрос и вставляй в код выше, или сохраняй запрос в файле, и подгружай из него, если все таки шаблон будет меняться часто..
PM ICQ   Вверх
jonie
Дата 13.3.2011, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



хз как в SQL CE, но в взросолй версии прокатит такое:
Код

SELECT TOP 0 * INTO newTable FROM realTable

создаст табличку...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Vova14
Дата 13.3.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.2.2011

Репутация: нет
Всего: нет



В SQL CE такое не катит. Здесь делаю так

Код

SqlCeCommand command = new SqlCeCommand("SELECT * FROM realTable", conn);
SqlCeDataReader dr = command.ExecuteReader();
DataTable t = dr.GetSchemaTable();


А потом исходя из схемы создаю строку CREATE TABLE
PM MAIL   Вверх
jonie
Дата 13.3.2011, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Vova14,тогда выбирайте не все данные запросом.. поставьте WHERE 1=0


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Vova14
Дата 13.3.2011, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.2.2011

Репутация: нет
Всего: нет



WHERE 1=0 уже пробовал
Код

SELECT TOP 0 * INTO newTable FROM realTabl WHERE 1=0

всё равно выдаёт ошибку начиная с         0 * INTO newTable FROM realTabl WHERE 1=0 
Похоже, что всё это особенности SQL Server Compact

Это сообщение отредактировал(а) Vova14 - 13.3.2011, 19:35
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1182 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.