Когда я обновляю базу данных с новой строкой из браузера, почему не обновляется таблица базы данных SQL Server? [Дубликат]

Я вижу, что все ваши ответы говорят то же самое. Взгляните на этот код:

def factorial(x):
   if x == 0 or x == 1:
      return (1)
   else:
      return (x * factorial(x-1))

x = (int(input(print('Enter a number: '))))
print(factorial(x))

И вывод:

 Enter a number: 
 None

Итак, я использовал Return только. Почему я не вижу ничего противного?

2
задан Soner Gönül 27 March 2016 в 10:19
поделиться

3 ответа

Я выяснил довольно простой ответ, но, возможно, это не самый лучший способ сделать это таким образом. В любом случае, я добавляю базу данных в проект, а затем подключаюсь непосредственно к ней, делая это:

string path = Path.GetDirectoryName(Path.GetDirectoryName(Directory.GetCurrentDirectory)));
SqlConnection c = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=""" + path + @"Database1.mdf"";Integrated Security=True;User Instance=True");

Таким образом, если вы перемещаете проект между несколькими ПК, соединение все равно будет работать (мне нужно это больше всего). Это также работает с файлами .SDF, и это также легче.

0
ответ дан Catalin Hoha 27 August 2018 в 09:19
поделиться

Весь подход User Instance и AttachDbFileName = ошибочен - в лучшем случае! При запуске приложения в Visual Studio он будет копировать файл .mdf (из вашего каталога App_Data в выходной каталог - обычно .\bin\debug - где вы запускаете приложение), и, скорее всего, ваш INSERT работает просто отлично, но вы просто смотрите на неправильный файл .mdf в конце!

Если вы хотите придерживаться этого подхода, попробуйте поставить точку останова на вызов myConnection.Close(), а затем осмотрите файл .mdf с помощью SQL Server Mgmt Studio Express - я почти уверен, что ваши данные есть.

Реальное решение, на мой взгляд, было бы

  1. установить SQL Server Express (и вы все равно это сделали)
  2. установить SQL Server Management Studio Express
  3. создать свою базу данных в SSMS Express, дать ему логическое имя (например, MyDatabase)
  4. подключиться к нему с использованием имени логической базы данных (если вы создать его на сервере) - и не вмешиваться в физические файлы базы данных и пользовательские экземпляры. В этом случае ваша строка соединения будет выглядеть примерно так:
    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
    
    и все остальное точно такое же, как раньше ...

Также см. Превосходное сообщение в блоге Aaron Bertrand Плохие привычки для использования: с помощью AttachDbFileName для получения дополнительной информации.

7
ответ дан marc_s 27 August 2018 в 09:19
поделиться

Измените параметр Скопировать в каталог вывода из «Копировать всегда» в «Копировать», если на странице свойств для файлов базы данных «Новее». Каждый раз, когда вы запускаете приложение, новый файл базы данных копируется из вашего проекта в папку bin, поэтому все ваши данные из предыдущего запуска удаляются.

Дополнительно: https: // msdn.microsoft.com/en-us/library/ms246989.aspx

1
ответ дан romanoza 27 August 2018 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: