2013-02-22 126 views
0

我有以下使用查詢的方法,但Visual Studio如圖所示拋出錯誤。連接字符串屬性尚未初始化

private void FindOrderData() 
     { 
      int intOrder = int.Parse(frmInput.InvoiceOrder); 

      string InvSql = "SELECT Orders.OrderID, Orders.OrderDate, Orders.Freight," + 
       "Customers.CompanyName, Customers.City, " + 
       "(Employees.FirstName + Space(1) + Employees.LastName) As Salesperson " + 
       "FROM ((Orders " + 
       "INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID) " + 
       "INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID) " + 
       "WHERE Orders.OrderID = " + "10655"; 

      OleDbConnection cnn = new OleDbConnection(strCon); 
      OleDbCommand cmdOrder = new OleDbCommand(InvSql, cnn); 
      cnn.Open(); 

      OleDbDataReader rdrOrder = cmdOrder.ExecuteReader(); 

      // Get CompanyName, City, Salesperson, OrderID, OrderDate and Freight 
      rdrOrder.Read(); 
      CustomerName = rdrOrder["CompanyName"].ToString(); 
      CustomerCity = rdrOrder["City"].ToString(); 
      SellerName = rdrOrder["Salesperson"].ToString(); 
      SaleID = rdrOrder["OrderID"].ToString(); 
      System.DateTime dtOrder = Convert.ToDateTime(rdrOrder["OrderDate"]); 
      SaleDate = dtOrder.ToShortDateString(); 
      SaleFreight = Convert.ToDecimal(rdrOrder["Freight"]); 
      // Get invoice total 
      GetInvoiceTotal(); 

      rdrOrder.Close(); 
      cnn.Close(); 
     } 

enter image description here

string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Amrit\\Desktop\\Northwind.mdb ;Persist Security Info=False;"; 
+3

什麼是STRCON變量包含哪些內容? – Freeman 2013-02-22 13:22:17

+2

'strCon'從哪裏來?我敢肯定,它是空或空:) – dasblinkenlight 2013-02-22 13:22:25

+0

string strCon =「Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\\ Users \\ Amrit \\ Desktop \\ Northwind.mdb; Persist Security Info = False; 「; – 2013-02-22 13:23:57

回答

4

您需要分配strCon到正確的連接字符串。這個變量的值很有可能是nullempty

例如:

strCon = "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"; 
OleDbConnection cnn = new OleDbConnection(strCon); 

你可以找到你需要在連接字符串:

http://connectionstrings.com/

0

如果從其他地方,那麼你錯過了其中strCon定義行復制該代碼。它應該是這樣的......

string strCon = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" 
0

請停止猜測這個喜歡的MVP .....,

我可以用一個支撐點繁殖,如果有異常發生,如果你有回滾你的交易,並嘗試繼續進一步的數據檢索,連接已關閉,所以錯誤。

如果您想了解更多關於您的bug的細節,請在VS IDE中保持例外狀態。 (調試 - >異常,檢查異常...)你會看到引起這個錯誤的髒代碼!

Hydtechie

+0

HydPhani,猜測?你的答案比這少。爲什麼會首先禁用調試異常?是的,開發人員編寫完整的高質量應用程序可能有理由將其禁用,因爲在調試會話期間,可能會被這麼多異常對話框「打擾」。 – TLama 2013-12-26 16:05:23

相關問題