连接字符串属性尚未初始化
问题描述:
我有以下使用查询的方法,但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
到正确的连接字符串。这个变量的值很有可能是null
或empty
。
例如:
strCon = "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;";
OleDbConnection cnn = new OleDbConnection(strCon);
你可以找到你需要在连接字符串:
答
如果从其他地方,那么你错过了其中strCon
定义行复制该代码。它应该是这样的......
string strCon = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
答
请停止猜测这个喜欢的MVP .....,
我可以用一个支撑点繁殖,如果有异常发生,如果你有回滚你的交易,并尝试继续进一步的数据检索,连接已关闭,所以错误。
如果您想了解更多关于您的bug的细节,请在VS IDE中保持例外状态。 (调试 - >异常,检查异常...)你会看到引起这个错误的脏代码!
Hydtechie
+0
HydPhani,猜测?你的答案比这少。为什么会首先禁用调试异常?是的,开发人员编写完整的高质量应用程序可能有理由将其禁用,因为在调试会话期间,可能会被这么多异常对话框“打扰”。 – TLama 2013-12-26 16:05:23
什么是STRCON变量包含哪些内容? – Freeman 2013-02-22 13:22:17
'strCon'从哪里来?我敢肯定,它是空或空:) – dasblinkenlight 2013-02-22 13:22:25
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