Chciałbym przechowywać długie skrypty .sql w moim rozwiązaniu i uruchamiać je programowo. Zrozumiałem już, jak wykonać ciąg zawierający skrypt SQL, ale nie mam pojęcia, jak odczytać ciąg z pliku, który byłby przechowywany w rozwiązaniu (w podfolderze/Scripts na przykład).Wykonywanie skryptu SQL przechowywanego jako zasób
Odpowiedz
Najpierw edytuj właściwości pliku .sql, aby został osadzony jako zasób.
Następnie za pomocą kodu podobnego do następującego, aby pobrać skrypt:
string commandText;
Assembly thisAssembly = Assembly.GetExecutingAssembly();
using (Stream s = thisAssembly.GetManifestResourceStream(
"{project default namespace}.{path in project}.{filename}.sql"))
{
using (StreamReader sr = new StreamReader(s))
{
commandText = sr.ReadToEnd();
}
}
@Will - W projekcie SQL CLR wydaje się, że nie ma możliwości dodania silnie wpisanego pliku zasobów. – jpierson
@Wyroby internetowe również są kiepskim rozwiązaniem, imho. Wydaje się, że nie ma sposobu na modyfikację wygenerowanych komentarzy XML, a podsumowania, takie jak * Wyszukuje zlokalizowane ciągi podobne do tworzenia tabeli dbo.Foo (... * są mało użyteczne – Stijn
Dodaj pliki SQL do projektu, a następnie utworzyć nowy plik zasobów. Otwórz plik SQL i wybierz "Pliki" z lewego górnego menu rozwijanego (domyślnie jest to Ciągi). Następnie naciśnij przycisk dodawania zasobów i przejdź do/wybierz plik SQL. To pozwala uzyskać SQL z pliku zasobów bez utraty bezpieczeństwa typu tak:
Powyższy proces jest w Visual Studio 2010. I napisał o tym na my blog.
Wiesz, że to stary post. bardzo schludne, ale jak dodać parametry do skryptu? – zmaster
Powinieneś być w stanie użyć 'string.Format' do tego. –
Dodaj do resrouces, i ustaw plik do zasobów, w kodzie napisz NAMESPACE.Properties.Resources .ScriptDB.ToString() –
Dodaj plik do Zasobów i ustaw plik do Zasobu w kodzie zapisu:
String SQLCommand = NAMESPACE.Properties.Resources.ScriptDB.ToString()
Zastosowanie QueryFirst. Umieszczasz swój sql w szablonie .sql dostarczonym przez narzędzie. Za kulisami QueryFirst kompiluje go jako zasób i łączy połączenie w celu pobrania go w czasie wykonywania. Musisz tylko martwić się wywołaniem Execute() na wygenerowanej klasie wrapper, a twoje wyniki są dostępne poprzez wygenerowane POCO. Bezpieczeństwo typu od końca do końca. Nigdy nie trzeba pamiętać nazwy kolumny lub typu danych, a także znacznych zalet posiadania sql, gdzie bóg zamierzał ... w pliku .sql.
disclaimer: Napisałem QueryFirst
- 1. clojure: rozpakowywanie pliku zip przechowywanego jako zasób
- 2. Wykonywanie skryptu sql w innym schemacie
- 3. Zatrzymaj wykonywanie skryptu Ruby
- 4. Wykonywanie skryptu R programowo
- 5. Wykonywanie skryptu PHP z innego skryptu PHP
- 6. Wykonywanie skryptu Bash ze skryptu PHP
- 7. Wykonywanie skryptu ruby z cron
- 8. Wykonywanie skryptu Bash z Golang
- 9. PL/SQL: czy istnieje instrukcja, aby całkowicie zatrzymać wykonywanie skryptu?
- 10. Wykonaj wykonywanie skryptu bez ograniczeń
- 11. Wykonywanie pliku skryptu w bazie danych h2
- 12. Zasób ze złożenia jako strumień
- 13. WPF - Importuj obraz jako zasób
- 14. Multibinding jako zasób w XAML
- 15. Procedury testowania przechowywanego SQL CLR z projektem testu jednostkowego
- 16. Zatrzymaj wykonywanie skryptu wywoływanego przy użyciu execfile
- 17. Wykonywanie wielu poleceń ze skryptu cmd Windows
- 18. Wykonywanie skryptu powłoki z parametrami z java
- 19. Chrome webtools debugger wznawia wykonywanie skryptu samodzielnie.
- 20. Wykonywanie pliku EXE przy użyciu skryptu PowerShell
- 21. Wykonywanie skryptu PowerShell w programie Fake
- 22. Wtyczka Maven exec - Wykonywanie skryptu python
- 23. Wykonywanie skryptu PHP za pomocą zadania CRON
- 24. Czy zatrzymanie/zatrzymanie przeglądarki zatrzymuje wykonywanie skryptu?
- 25. Wykonywanie skryptu rurociąg Gstreamer kodem php
- 26. Wykonywanie skryptu powłoki za pomocą ant
- 27. Wykonywanie Oracle proc przechowywanej jako inny użytkownik
- 28. sqlalchemy: wykonywanie surowego sql z powiązaniami parametrów
- 29. bash freeTDS: Wykonywanie kwerend sql w serwerze Microsoft SQL
- 30. wykonywanie funkcji w sql plus
Jest dobrze szczegółowe odpowiedzi na temat osadzonego zasobu w duplikatu pytanie https://stackoverflow.com/questions/23301964/ef-6-code-first-with-custom-stored -procedure/39673550 # 39673550 –