【问题标题】:Connection String Properties has not been initialized连接字符串属性尚未初始化
【发布时间】:2013-02-22 13:20:58
【问题描述】:

我有以下使用查询的方法,但 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();
        }

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

【问题讨论】:

  • strCon 变量包含什么?
  • strCon 来自哪里?我敢打赌它是 null 或空的 :)
  • string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Amrit\\Desktop\\Northwind.mdb ;Persist Security Info=False;";
  • @AmritSharma,你在哪里称呼那条线?
  • 我想我是从无法访问的类中调用它的。现在可以了,谢谢..

标签: c# sql .net sql-server database


【解决方案1】:

您需要将strCon 分配给正确的连接字符串。这个变量的值很可能是nullempty

例如:

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

您可以在以下位置找到您需要的连接字符串:

http://connectionstrings.com/

【讨论】:

    【解决方案2】:

    如果您从其他地方复制此代码,那么您错过了定义 strCon 的行。应该是……

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

    【讨论】:

      【解决方案3】:

      请停止像 MVP 一样的猜测......,

      我可以用一个强点重现,如果发生异常,如果你已经回滚了你的事务,并尝试继续进一步的数据检索,Connection is Closed,所以错误。

      如果您想了解有关您的错误的更多详细信息,请在 VS IDE 中保持异常为 ON。 (Debug --> Exceptions, check on exceptions...)你会看到导致这个错误的脏代码!

      卫生技术人员

      【讨论】:

      • HydPhani,推测?你的答案比这少。为什么要首先禁用调试异常?是的,编写完全质量应用程序的开发人员可能有理由禁用它们,因为他们可能会在调试会话期间被如此多的异常对话框“打扰”。
      猜你喜欢
      • 2017-09-14
      • 2020-02-20
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2011-07-22
      • 2012-08-20
      相关资源
      最近更新 更多