我的系统中安装了Quick book application
。我创建的供应商和客户很少。
快速预订:QuickBooks Simple Start 2010 Free Edition
数据库:QuickBooks Database Server Manager
数据库版本:11.0.1.2584
计算机名称:SYS13
在我的Windows C#应用程序中,我试图通过阅读Excel
来添加供应商和客户列表。我正在生成XML并基于Excel输入。
一切都好。但是My C# app
和Quick Book Database
之间没有发生连接。
我低于错误
Can't connect to the database.
连接字符串:Computer Name=SYS13;Company Data=Demo VSS;Version=11.0.1.2584
代码我试图连接:
try
{
rp.OpenConnection("VendorAdd", "VendorAdd");
MessageBox.Show(connString);
ticket = rp.BeginSession(connString);
response = rp.ProcessRequest(ticket, input);
requestXML = input.ToString();
responseXML = response.ToString();
}
catch (System.Runtime.InteropServices.COMException ex)
{
MessageBox.Show("COM Error Description = " + ex.Message, "COM error");
return;
}
finally
{
if (ticket != null)
{
rp.EndSession(ticket);
}
if (rp != null)
{
rp.CloseConnection();
}
};
任何想法为什么?有关此应用的任何示例源代码?
提前致谢,
答案 0 :(得分:2)
quickbooks集成要求您的应用程序注册公司quickbooks文件(我相信.qbw)。为了实现连接,您必须在quickbooks运行时直接针对quickbooks安装运行此应用程序,并授权您的应用程序集成到quickbooks中。我将在后续编辑中挖掘相关链接。
编辑这里是指向正确方向的链接: http://www.qodbc.com/qodbcconnect.htm http://www.ehow.com/how_8478505_add-integrated-application-quickbooks.html http://www.vtechnologies.com/kb.htm?prodid=2&kbid=797F8F94-3706-480D-A357-31B80AE2D011&
还有其他一些事情可能会发生。检查您正在获取的任何COM异常并直接调查其代码。他们至少会指出你的方向。我最常得到的那个是COM异常,它告诉我在我尝试访问它的时候没有打开并运行QuickBook。
如果你在异常中得到这个,那么你需要在尝试连接它之前打开quickbooks:
HRESULT: 0x80040430
但是,一般情况下,您的代码应如下所示:
public IVendorRetList GetVendors(string filePath, string appName)
{
var _sessionManager = new QBSessionManager();
_sessionManager.CommunicateOutOfProcess(true);
_sessionManager.OpenConnection2(string.Empty, appName, ENConnectionType.ctLocalQBD);
_sessionManager.BeginSession(filePath, ENOpenMode.omDontCare);
_request = _sessionManager.CreateMsgSetRequest("US", 12, 0);
_request.AppendVendorQueryRq();
//do somethign to filter your vendor query here.
var response = _sessionManager.DoRequests(_request);
var vendorList = (IVendorRetList)response.ResponseList.GetAt(0).Detail;
return vendorList;
}