Làm thế nào để vượt qua bảng tham số có giá trị để lưu trữ thủ tục bằng cách sử dụng ADO.Net?Vượt qua bảng tham số có giá trị bằng cách sử dụng ADO.Net
Trả lời
Tạo gõ vào SQL Server:
CREATE TYPE [dbo].[MyDataType] As Table ( ID INT, Name NVARCHAR(50) )
Tạo Thủ tục:
CREATE PROCEDURE [dbo].[MyProcedure] ( @myData As [dbo].[MyDataType] Readonly ) AS BEGIN SELECT * FROM @myData END
Tạo DataTable trong 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);
Tạo SQL Parameter:
SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@myData"; parameter.SqlDbType = System.Data.SqlDbType.Structured; parameter.Value = myDataTable; command.Parameters.Add(parameter);
Câu hỏi này trùng lặp với How to pass table value parameters to stored procedure from .net code. Vui lòng xem câu hỏi đó để biết ví dụ minh họa việc sử dụng số DataTable
hoặc IEnumerable<SqlDataRecord>
.
Tôi cố gắng này và nhận được ngoại lệ:
Bảng tham số kiểu '@MyDataType' phải có một tên kiểu hợp lệ.
tôi đã phải đặt "TypeName" tài sản của SqlParameter:
parameter.TypeName = "MyDataType";
có. bạn nói đúng, "TypeName" phải được thiết lập. –
Thêm lược đồ db như là một phần của tên bảng đã làm cho tôi: DataTable myDataTable = new DataTable ("dbo.MyDataType"); – noontz
Bạn có thể thêm tiền tố với 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. Vượt qua Giá trị bằng C#
- 2. Sử dụng một cấu trúc để vượt qua các thông số bằng cách tham khảo
- 3. Tham số giá trị bảng Php SQL Server
- 4. ADO.NET Tham số TableAdapter
- 5. Cách chuyển từ khóa mặc định cho bảng có giá trị gọi hàm trong ADO.NET
- 6. Có thể vượt qua các giá trị tham số trong Moq không?
- 7. Vượt qua giá trị vs Vượt qua hiệu năng tham chiếu C# .net
- 8. VB6 vượt qua theo giá trị và vượt qua tham chiếu
- 9. Rcpp vượt qua bằng cách tham khảo vs bởi giá trị
- 10. Java vượt qua bằng cách tham khảo
- 11. Mục tiêu C - Vượt qua giá trị và vượt qua tham chiếu
- 12. Tham số tùy chọn Giá trị Bảng
- 13. MySQL: Sử dụng giá trị CASE/ELSE làm tham số
- 14. Delphi thông số đi qua bằng cách tham chiếu hoặc bằng giá trị/sao chép
- 15. Làm thế nào để bạn chỉ định 'DEFAULT' làm giá trị tham số SQL trong ADO.NET?
- 16. Cách chuyển thông số giá trị bảng
- 17. PHP lỗi: "Không thể vượt qua tham số 2 bằng cách tham khảo"
- 18. vượt qua tham chiếu C++
- 19. Có thể tham gia một hàm có giá trị bảng và một bảng khác với tham số
- 20. Vượt qua hai đối số bằng navigator.notification.confirm?
- 21. Sử dụng cặp khóa-giá trị làm tham số
- 22. Sử dụng giá trị của tham số templated
- 23. mẫu vượt qua theo giá trị hoặc tham chiếu const hoặc ...?
- 24. SQL: trong mệnh đề trong thủ tục lưu sẵn: cách vượt qua các giá trị
- 25. Làm thế nào để vượt qua một tham chiếu thông qua một gói tham số?
- 26. Làm thế nào để sử dụng tham số Array/Table với Oracle (ODP.NET 10g) thông qua ADO.NET/C#?
- 27. cách vượt qua đối số không giới hạn bằng cách tham chiếu trong php
- 28. Vượt qua tham chiếu trong C
- 29. python numpy và hiệu quả bộ nhớ (vượt qua tham chiếu và giá trị)
- 30. JSON có giá trị hàm với tham số
này chỉ áp dụng trong SQL Server 2008 –
Cùng đang làm việc tốt với SQL Server 2012. –
Tôi có nghĩa là điều này chỉ có sẵn máy chủ Sql 2008 trở lên và do đó, nó cũng sẽ hoạt động trong năm 2012. –