2012-08-03 75 views
0

好吧,我打電話給存儲過程,我不確定我的VB.net代碼將接收什麼類型。來自SQL Server存儲過程的結果類型

這裏的存儲過程:

@IDNo varchar(Max) 
AS 
select a.IDNo, 
     p.EMAIL 
from person p 
    left join customer a on p.person_id=a.person_id 
where ([email protected]) 

這裏是我的VB爲止;

resultSet = thisDataCxt.sp_GetEmail(IDNo).FirstOrDefault() 

我的問題是,resultSet是什麼類型?我可以把它做成Object嗎?如果是這樣,我該如何訪問它的IDNo和EMAIL屬性。

還需要記住,我使用這個來查看是否沒有結果(又名IDNo沒有匹配),所以我需要測試resultSet是否爲NULL。

+0

這是實體框架嗎? – podiluska 2012-08-03 11:25:52

+0

Yup____________ – windowskm 2012-08-03 11:28:28

回答

1

爲什麼不能使用數據集&數據表並將sp輸出存儲在該表中。然後嘗試通過它迭​​代值,如果datatable具有多於0行的話。

+0

聽起來不錯。但是說它返回的是ID而不是電子郵件,我怎麼從我的數據表中找到這個ID? – windowskm 2012-08-03 12:18:49

+0

還有一件事是你可以通過提供輸入和輸出參數來執行vb.net中的sproc。通過這個,你將得到變量中sproc的輸出。 – AnandPhadke 2012-08-03 12:20:59

+1

您的數據行將在電子郵件字段中包含一個DBNull – podiluska 2012-08-03 12:21:10

0

檢查此示例代碼。

cmd.CommandText = "your proc name"; 
        cmd.CommandType = CommandType.StoredProcedure; 

        SqlParameter param1 = cmd.Parameters.Add("@param1", SqlDbType.VarChar, 255); 
        param1.Direction = ParameterDirection.Input; 
        SqlParameter param2 = cmd.Parameters.Add("@param2", SqlDbType.Int, 8); 
        param2.Direction = ParameterDirection.OutPut; 
        cmd.ExecuteNonQuery(); 

現在你的輸出值在@param2中。