2013-02-22 125 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

相关问题