我制作了一个项目,该项目使用sqlserverce数据库作为定价师,emploee Info等,在PDF中提出要约,并打开新电子邮件将其发送给客户端。
第一个问题是:"指定的表不存在。[xxxxx]"。我发现,如果我以管理员的身份运行项目,它有助于与数据库连接。
,但它会导致其他问题:管理员在Outlook打开时给予运行项目(关闭Outlook时没有问题):
System.Runtime.InteropServices.COMException Retrieving the COM class factory for component with CLSID ..... (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
当项目试图创建新电子邮件时。
是否有任何解决方法可以使这两个部件一起工作?你有线索吗?我有点谷歌搜索,但我了解到我必须更改注册表以避免第二个问题。还有其他方法吗?
这是电子邮件的代码:
Outlook.Application objApp = new Outlook.Application();
Outlook.MailItem mail = null;
mail = (Outlook.MailItem)objApp.CreateItem(Outlook.OlItemType.olMailItem);
//The CreateItem method returns an object which has to be typecast to MailItem
//before using it.
mail.Attachments.Add((object)saveFile.FileName, Outlook.OlAttachmentType.olByValue, 1, Type.Missing);
//The parameters are explained below
mail.To = email;
mail.BCC = "someemailshere@something.pl";
mail.Display();
这是数据库连接的代码(程序中发生了几次):
System.Data.SqlServerCe.SqlCeConnection sqlconnection = new System.Data.SqlServerCe.SqlCeConnection();
System.Data.DataSet DtSet = new System.Data.DataSet();
System.Data.SqlServerCe.SqlCeDataAdapter sqladapter;
string katalog = Application.StartupPath + "\Bazadanych.sdf"; //Data Source = C:\Users\user\Documents\Visual Studio 2010\Projects\BMGRP\Oferty BMGRP\Oferty BMGRP\bin\Debug\BazaDanych.sdf
sqlconnection.ConnectionString = "Data Source = " + katalog + "; Max Database Size=40"; //zmienić na katalog root programu
sqlconnection.Open();
string sql = "SELECT * From Przedstawiciele";
sqladapter = new System.Data.SqlServerCe.SqlCeDataAdapter(sql, sqlconnection);
sqladapter.Fill(DtSet);
comboBox1.DataSource = DtSet.Tables[0];
comboBox1.DisplayMember = "imie";
sqlconnection.Close();
是。该程序在程序文件中安装为默认。
其他研究表明,不可能做我想做的事(以管理员的身份运行项目并在Outlook开启时创建电子邮件)。因此,唯一的解决方案是解决数据库问题:它是在其他文件夹中安装应用程序,然后按照@spender建议的方式进行程序文件。它有所帮助。