c# - 快速图书与 C# Windows 应用程序集成

标签 c# winforms database-connection connection-string quickbooks

我的系统中安装了快速图书应用程序。我创建了一些供应商和客户列表。

Quick Book:QuickBooks Simple Start 2010 免费版

数据库:QuickBooks 数据库服务器管理器

数据库版本:11.0.1.2584

计算机名称:SYS13

在我的 Windows C# 应用程序中,我尝试通过读取 Excel 添加供应商和客户列表。我正在生成 XML 并基于 Excel 输入。

一切都很好。但我的 C# 应用程序Quick Book Database 之间未发生连接。

我遇到以下错误:

Can't connect to the database.

连接字符串:计算机名称=SYS13;公司数据=演示 VSS;版本=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();
           }
      };

有什么想法吗?有关于此应用程序的示例源代码吗?

提前致谢,

最佳答案

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 异常,它告诉我在尝试访问 QuickBooks 时没有打开并运行 QuickBooks。

如果您在异常中遇到此问题,则需要在尝试连接之前打开 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;
}

关于c# - 快速图书与 C# Windows 应用程序集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18159422/

相关文章:

c# - 无法加载文件或程序集 'Newtonsoft.Json' 或其依赖项之一

c# - 'System.OutOfMemoryException' : Error creating window handle

c# - 配置VS2013帮助语言

c# - 比较 Linq to Sql 中的可空类型

c# - 是否可以将依赖属性框架插入 Winform 或 ASP.NET?

c# - 文件名模式在 OpenFileDialog 中不起作用

Qt 上未加载 MySQL 驱动程序

c# - 从 c# 连接到 mysql 给我空异常

java - 如何使用 URL 参数关闭 HSQL DB 中的日志记录?

c# - 将小数(2.75)转换为时间(2 :45)