2010-04-07 41 views
14

Lái xe tôi phát điên lên một dự án cá nhân; Tôi biết tôi đã làm điều này trước nhưng ở nơi khác và không có mã. Theo như tôi có thể thấy, tôi đang thiết lập tham số, tôi đang thiết lập giá trị của nó, kết nối được mở, nhưng khi tôi cố gắng điền vào tập dữ liệu, tôi nhận được lỗi 'Procedure or function expected parameter "@test" không được cung cấp '.Thủ tục hoặc chức năng dự kiến ​​tham số không được cung cấp

(Điều này rõ ràng là một thử nghiệm đơn giản Cùng một lỗi về vấn đề này hay thật, mã chứ không còn mặc dù!).

C#:

SqlCommand l_oCmd; 
DataSet l_oPage = new DataSet(); 

l_oCmd = new SqlCommand("usp_test", g_oConn); 
l_oCmd.Parameters.Add(new SqlParameter("@test", SqlDbType.NVarChar)); 
l_oCmd.Parameters[0].Value = "hello world"; 

SqlDataAdapter da = new SqlDataAdapter(l_oCmd); 
da.Fill(l_oPage); 

SQL:

create procedure usp_test 
(
    @test nvarchar(1000) 
) 
as 
select @test 

gì có Tôi đã bỏ lỡ?

+0

gì sẽ xảy ra nếu bạn chỉ cần sử dụng: 'l_oCmd.Parameters.Add (SqlParameter mới ("@ thử nghiệm", "hello world"));' – tloflin

+0

Xong cả hai, cũng làm như vậy mỗi cách. – eftpotrm

Trả lời

39

Thay đổi kiểu lệnh để Thủ tục

+1

Mã hóa muộn vào ban đêm, phai não - cảm ơn :-) – eftpotrm

+1

Ugh, đáng lẽ đã bắt được điều đó. Điều đó khiến tôi phát điên. –

+1

Thời gian dài không có ADO.Net. (Đó là lý do của tôi, tôi đang gắn bó với nó) – davewilliams459

Các vấn đề liên quan