2013-11-23 5 views
1

Я сделал AC# программа для создания базы данных в локальный MS SQL, как показано ниже:SQL разрешение вопроса при создании базы данных

SqlConnection conn = new SqlConnection(); 
    conn.ConnectionString = "SERVER = " + serverName + "; DATABASE = master; Integrated Security=SSPI"; 

    string query = " CREATE DATABASE " + dbName + " ON PRIMARY " 
         + " (NAME = " + dataFileName + ", " 
         + " FILENAME = '" + schemaPath + "', " 
         + " SIZE = 2MB," 
         + " FILEGROWTH = 10%) " 
         + " LOG ON (NAME =" + logFileName + ", " 
         + " FILENAME = '" + logFilePath + "', " 
         + " SIZE = 1MB, " 
         + " FILEGROWTH = 10%) "; 

    try 
    { 
     conn.Open(); 
     SqlCommand sqlCmd = new SqlCommand(query, conn); 
     sqlCmd.ExecuteNonQuery(); 
     Console.WriteLine("Database has been created successfully!"); 
    } 
    catch (System.Exception ex) 
    { 
     Console.WriteLine("Failed to create the db. " + ex.ToString()); 
     Environment.Exit(1); 
    } 

Он работает прекрасно на моем компьютере, но терпит неудачу на другой машине: У меня есть права на запись в папки, которые я указал.

Не удалось создать дБ. System.Data.SqlClient.SqlException (0x80131904): Поиск в каталоге для файла Ошибка «C: \ Users \ Administrator \ Desktop \ test2.mdf» при работе с системной ошибкой операционной системы (доступ запрещен.). CREATE DATABASE не удалось. Некоторый файл перечисленных имен не удалось создать. Проверьте связанные ошибки. на System.Data.SqlClient.SqlConnection.OnError (SqlException исключения, Логического breakConnection) при System.Data.SqlClient.SqlInternalConnection.OnError (SqlException исключения, булева breakConnection) при System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning () при System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, Tds ParserStateObject stateObj) в System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds (String имяМетода, булева асинхронному) в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult результат, String имяМетода, Boolean sendToPipe) в System.Data.SqlClient.SqlCommand.ExecuteNonQuery() в com.appneta.test.DB_DataLoader.createDB (String DbName)

Любые идеи?

+0

У меня такая же проблема, какой-то прогресс в этой проблеме? – Alex

ответ

2

Когда вы говорите: «У меня есть права на запись в папки, которые я указал». - похоже, что вы говорите о себе.

Необходимо убедиться, что учетная запись службы SQL Server работает с правами на запись в пути к папке, которую вы пытаетесь записать.

0

Вы используете визуальную студию в качестве администратора?

Смежные вопросы