亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對象引用未設置為 con.Open() 上的對象實例;

對象引用未設置為 con.Open() 上的對象實例;

C#
神不在的星期二 2021-05-31 17:52:23
我在 jquery 中有 15 個同時執行的 ajax 調用,調用它們各自的 c# 函數(每個 ajax 有單獨的 c# 函數)以下是示例 c# sql 函數public static DataSet Function1(int arg, string arg2, string arg3, string arg4, int arg5, int arg6)        {            DataSet ds = new DataSet();            try            {                using (SqlConnection con = DbHelper.Connect())                {                    con.Open();                    using (SqlCommand cmd = con.CreateCommand())                    {                        cmd.CommandText = "Procedure_Name";                        cmd.CommandType = CommandType.StoredProcedure;                        cmd.Parameters.AddWithValue("@arg", arg);                        cmd.Parameters.AddWithValue("@arg1", arg1);                        cmd.Parameters.AddWithValue("@arg2", arg2);                        cmd.Parameters.AddWithValue("@arg3", arg3);                        cmd.Parameters.AddWithValue("@arg4", arg4);                        // cmd.Parameters.AddWithValue("@arg5", arg5);                        cmd.CommandTimeout = 0;                        var dataAdaptor = new SqlDataAdapter(cmd);                        dataAdaptor.Fill(ds);                    }                    con.Close();                }                ds.Tables[0].TableName = "Test";            }            catch (Exception ex)            {                throw ex;            }            return ds;        }我偶爾會遇到以下異常 Message:Object reference not set to an instance of an object.Source:System.DataTarget site:Boolean TryOpenInner(System.Threading.Tasks.TaskCompletionSource1[System.Data.ProviderBase.DbConnectionInternal])Stack Trace:   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry)   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)   at System.Data.SqlClient.SqlConnection.Open()
查看完整描述

1 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

我認為存在問題,因為您同時訪問(從 15 個單獨的線程)static SqlConnection _connstatic的成員DbHelper。我會static SqlConnection _conn從DbHelper班級中刪除該成員,因為您是在Function1. 既然你正在寫這個:


using (SqlConnection con = DbHelper.Connect())

{

   // code stuff here...

}

在使用結束時,SqlConnection con 正在被處理。在另一個線程中,Funtion1 可能只是在調用 con.Open(); 從而導致空指針引用。


查看完整回答
反對 回復 2021-06-05
  • 1 回答
  • 0 關注
  • 208 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號