Jak przekazać wartość przechowywaną w tabeli do procedury składowanej za pomocą ADO.Net?Parametr wartościowy tabeli przechwytującej za pomocą ADO.Net
Odpowiedz
Tworzenie typu SQL Server:
CREATE TYPE [dbo].[MyDataType] As Table ( ID INT, Name NVARCHAR(50) )
Tworzenie Procedura:
CREATE PROCEDURE [dbo].[MyProcedure] ( @myData As [dbo].[MyDataType] Readonly ) AS BEGIN SELECT * FROM @myData END
Tworzenie DataTable w C#:
DataTable myDataTable = new DataTable("MyDataType"); myDataTable.Columns.Add("Name", typeof(string)); myDataTable.Columns.Add("Id", typeof(Int32)); myDataTable.Rows.Add("XYZ", 1); myDataTable.Rows.Add("ABC", 2);
Tworzenie SQL parametr:
SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@myData"; parameter.SqlDbType = System.Data.SqlDbType.Structured; parameter.Value = myDataTable; command.Parameters.Add(parameter);
To pytanie jest duplikatem How to pass table value parameters to stored procedure from .net code. Zobacz to pytanie jako przykład ilustrujący użycie albo DataTable
lub IEnumerable<SqlDataRecord>
.
Próbowałem tego i otrzymała wyjątek:
parametr typu stołowego „@MyDataType” musi mieć poprawną nazwę typu.
musiałem ustawić "typename" własność SqlParameter:
parameter.TypeName = "MyDataType";
tak. masz rację, "TypeName" musi być ustawiony. –
Dodanie schematu db jako części nazwy tabeli zrobiło to za mnie: DataTable myDataTable = new DataTable ("dbo.MyDataType"); – noontz
Można prefiks z Exec
using(SqlConnection con = new SqlConnection("Server=.;database=employee;user=sa;password=12345"))
{
SqlCommand cmd = new SqlCommand(" exec ('drop table '[email protected])" , con);
cmd.Parameters.AddWithValue("@tab" ,"Employee");
con.Open();
cmd.ExecuteNonQuery();
}
- 1. Usługi danych ADO.NET - parametr formatu - xml/json
- 2. Parametry ADO.NET TableAdapter
- 3. post tabeli HTML do ADO.NET DataTable
- 4. Użycie sieci przechwytującej
- 5. Wartość tabeli opcjonalny parametr
- 6. Implementowanie ogólnego wzorca repozytorium za pomocą starego ado.net
- 7. Boxplot tabeli za pomocą ggplot2
- 8. Jak mogę jawnie zmienić parametr RowState w ADO.Net DataRow?
- 9. Jak przekazać parametr wartości tabeli
- 10. Regex: Jak przechwycić grupę po opcjonalnej grupie przechwytującej za pomocą wyrażeń regularnych?
- 11. Wypełnianie tabeli z JSON za pomocą jQuery
- 12. Tworzenie tabeli dynamicznej za pomocą PHP
- 13. zapełnianie tabeli za pomocą opcji angle2 * ngFor?
- 14. Rozpoznawanie tabeli PDF za pomocą R
- 15. Tworzenie przekrojów tabeli za pomocą NSFetchedResultsController
- 16. Zmień nazwę tabeli za pomocą migracji Doctrine
- 17. Wyodrębnianie tabeli symboli za pomocą języka
- 18. Stopniowe ulepszanie tabeli HTML za pomocą jqGrid?
- 19. Wybieranie danych tabeli za pomocą instrukcji PDO
- 20. automatyczne sortowanie tabeli za pomocą sorttable.js
- 21. Określ klucz podstawowy tabeli za pomocą TSQL
- 22. SQL foreach za pomocą wierszy tabeli
- 23. Asynchroniczny ADO.NET
- 24. Aktualizacja danych wsadowych MS Access za pomocą funkcji ADO.Net i COM Interoperability
- 25. Zdarzenie zmiany sieci przechwytującej Wi-Fi w systemie iOS
- 26. Jak mogę przekazać parametr za pomocą przycisku przesyłania?
- 27. Jak odszyfrować parametr adresu URL za pomocą C#?
- 28. Jak wyodrębnić parametr z odpowiedzi Json za pomocą Groovy?
- 29. RestClient usuwa parametr tablicy haszów za pomocą ostatniego skrótu?
- 30. Jak uzyskać dodatkowy parametr z linku dynamicznego za pomocą Firebase?
ta ma zastosowanie tylko w SQL Server 2008 –
samo działa poprawnie z SQL Server 2012 też. –
Mam na myśli to, że jest dostępny tylko serwer Sql 2008 i wyżej i tak będzie działać również w 2012 roku. –