2
A
回答
4
使用Threading.Tasks
。下面的代碼會讓你的線程等待任務完成。
public void CallStoredProcMethod()
{
var task1 = System.Threading.Tasks.Task.Factory.StartNew(() => RunStoredPro());
// thread will wait there till the operation finish
task1.Wait();
}
public void RunStoredPro()
{
using (var connection = new SqlConnection(sqlConnString))
{
// your database call
}
}
2
System.Data.Common.DbCommand有一個CommandTimeout財產。
獲取或設置在終止嘗試執行 命令並生成錯誤之前的等待時間。以秒爲單位等待命令執行的時間。注意實施者,建議0表示不超時。
請注意,SqlCommand的默認值是30秒。如果您將CommandTimeout屬性設置爲0,則只要存儲過程需要執行,您的調用就會執行。爲ExecuteScalar執行上一個SqlCommand在MSDN頁面下面的例子中,稍加修改設置CommandTimeout:
static public int AddProductCategory(string newName, string connString)
{
Int32 newProdID = 0;
string sql =
"INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "
+ "SELECT CAST(scope_identity() AS int)";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
// this will cause the command to wait until the sproc is finished
cmd.CommandTimeout = 0;
cmd.Parameters.Add("@Name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = newName;
try
{
conn.Open();
newProdID = (Int32)cmd.ExecuteScalar();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return (int)newProdID;
}
1
使用return語句中的存儲過程,並獲得價值
爲例如存儲過程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[Validate]
@inputdata varchar(50),
@outputdata varchar(50) output
AS
SET @outputdata = (
SELECT TOP 1 Password FROM dbo.tblUser WHERE Login = @a)
RETURN @outputdata
GO
我在這裏簡要地解釋C#中的核心代碼
string returnValue = string.Empty;
...............
SqlConn.Open();
sqlcomm.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@inputdata", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = Username;
sqlcomm.Parameters.Add(param);
SqlParameter retval = sqlcomm.Parameters.Add("@outputdata", SqlDbType.VarChar);
retval.Direction = ParameterDirection.Output;
string retunvalue = (string)sqlcomm.Parameters["@outputdata"].Value;
......................
.........
相關問題
- 1. 等待將來在處理程序線程中獲得結果
- 2. jQuery遞歸獲得等待結果
- 3. 等待存儲過程等待其他存儲過程的執行
- 4. SQL Server存儲過程一直在等待「等待命令」
- 5. 等待getAuthToken意圖結果的服務
- 6. 從SQL Server存儲過程獲得空結果存儲過程,返回XML
- 7. 正在等待意圖獲得服務
- 8. 從存儲過程得到結果集
- 9. 結果Column Null來自存儲過程
- 10. 等待存儲過程中的延遲
- 11. 獲取存儲過程的結果Laravel
- 12. 從存儲過程中獲取結果
- 13. 獲取存儲過程多個結果
- 14. WPF等待窗口
- 15. Fltk窗口等待
- 16. C++調用並等待外部程序並獲得結果
- 17. 等待屏幕窗口結束
- 18. 窗口pygame的凍結,同時等待
- 19. 存儲過程結果?
- 20. AutoMapping存儲過程結果
- 21. 我不會從存儲過程中獲得正確的結果
- 22. 如何獲得C#中存儲過程的結果?
- 23. 獲得的結果的彙總從另一個存儲過程
- 24. 如何在JSON中獲得SQL Server存儲過程的結果?
- 25. 調用存儲過程並獲得結果
- 26. 獲得不同的結果,當代碼在存儲過程
- 27. 如何從PHP調用存儲過程並獲得結果?
- 28. 從鏈接服務器插入存儲過程的結果
- 29. Angular 2等到服務結果出來
- 30. 如何存儲sql結果而不創建表來存儲存儲過程的結果
你現在怎麼運行這個程序?發佈您的代碼 – msmucker0527