Я вижу, что все ваши ответы говорят то же самое. Взгляните на этот код:
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 только. Почему я не вижу ничего противного?
Я выяснил довольно простой ответ, но, возможно, это не самый лучший способ сделать это таким образом. В любом случае, я добавляю базу данных в проект, а затем подключаюсь непосредственно к ней, делая это:
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, и это также легче.
Весь подход User Instance и AttachDbFileName = ошибочен - в лучшем случае! При запуске приложения в Visual Studio он будет копировать файл .mdf
(из вашего каталога App_Data
в выходной каталог - обычно .\bin\debug
- где вы запускаете приложение), и, скорее всего, ваш INSERT
работает просто отлично, но вы просто смотрите на неправильный файл .mdf в конце!
Если вы хотите придерживаться этого подхода, попробуйте поставить точку останова на вызов myConnection.Close()
, а затем осмотрите файл .mdf
с помощью SQL Server Mgmt Studio Express - я почти уверен, что ваши данные есть.
Реальное решение, на мой взгляд, было бы
MyDatabase
) Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True
и все остальное точно такое же, как раньше ... Также см. Превосходное сообщение в блоге Aaron Bertrand Плохие привычки для использования: с помощью AttachDbFileName для получения дополнительной информации.
Измените параметр Скопировать в каталог вывода из «Копировать всегда» в «Копировать», если на странице свойств для файлов базы данных «Новее». Каждый раз, когда вы запускаете приложение, новый файл базы данных копируется из вашего проекта в папку bin
, поэтому все ваши данные из предыдущего запуска удаляются.
Дополнительно: https: // msdn.microsoft.com/en-us/library/ms246989.aspx