2010-08-23 4 views
0

У меня есть несколько сценариев, которые мне нужно запустить на моем databse. Поэтому у меня есть несколько вопросов.Создание таблиц через скрипт и запуск сценария

Я просто использую Connection, CommandText, CommandType и CommandTimeout при открытии соединения с базой данных.

Первый вопрос - Кто-нибудь знает, если с помощью этого метода я могу создать постоянные таблицы, а не временные таблицы?

Во-вторых - Как запустить этот файл? Могу ли я просто установить файл как параметр, а в запросе запустить параметр?

Благодаря

ответ

0

Вы можете сделать что-нибудь в соединении .NET SQL, которое вы можете сделать в SQL-скрипте. Что касается «запуска файла», вам нужно будет загрузить текст файла в память и выполнить загруженный текст в виде одной команды.

Мы делаем что-то подобное в нашем приложении. Наши скрипты базы данных хранятся в сценариях SQL. Мы загружаем каждый файл последовательно с диска в память и выполняем его.

+0

Как загрузить текст в память, somthing like 'using (StreamReader sr - New StreamReader (" fileName "))' – Vibralux

+0

Точно. Или используйте File.ReadAllLines(). Прочитайте файл полностью, затем выполните текст. Чтобы быть приятным для других приложений, откройте FileStream с FileAccess.read и FileShare.Read, а затем откройте StreamReader в FileStream. –

0

В C# -

  1. Вы можете создавать как постоянные, так и временные таблицы таким образом.

  2. Запустите сценарий как CommandText объекта команды.

+0

Спасибо за этот ответ, скажем, мне нужно постоянно обновлять файл, так что у меня есть файл в виде ссылки фактического файла, я бы просто запустить его через параметр, или есть другой способ? – Vibralux

0

Пример из MSDN: Как установить параметры в запросе,

private static void UpdateDemographics(Int32 customerID, 
    string demoXml, string connectionString) 
{ 

    string commandText = "UPDATE Sales.Store SET Demographics = @demographics " 
     + "WHERE CustomerID = @ID;"; 

    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     SqlCommand command = new SqlCommand(commandText, connection); 
     command.Parameters.Add("@ID", SqlDbType.Int); 
     command.Parameters["@ID"].Value = customerID; 

     command.Parameters.AddWithValue("@demographics", demoXml); 

     try 
     { 
      connection.Open(); 
      Int32 rowsAffected = command.ExecuteNonQuery(); 
      Console.WriteLine("RowsAffected: {0}", rowsAffected); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
    } 
} 
Смежные вопросы