小编Ska*_*lli的帖子

在C#中使用MySQLConnection无法正常关闭

最终解决方案

连接已添加到连接池中.所以我关闭它,但它仍然保持身体开放.使用ConnectionString参数"Pooling = false"或静态方法MySqlConnection.ClearPool(连接)和MySqlConnection.ClearAllPools可以避免问题.请注意,问题是,当我关闭应用程序时,连接仍然存在.即使我关闭它.所以我要么根本不使用连接池,要么在关闭连接之前清除特定池,问题就解决了.我会花时间弄清楚在我的情况下什么是最好的解决方案.

感谢所有回答的人!它帮助我更好地理解了C#的概念,并从有用的输入中学到了很多东西.:)

===

原始问题:

我已经搜索了一段时间,并没有找到我的问题的解决方案:我是C#的新手并尝试编写一个类来使MySql Connections更容易.我的问题是,在我打开连接并关闭它之后.它仍然在数据库中打开并被中止.

我当然使用'using'语句,但是在退出程序后连接仍然是打开的并且被中止.

这是我的代码的样子:

using (DatabaseManager db = new DatabaseManager())
{
using (MySqlDataReader result = db.DataReader("SELECT * FROM module WHERE Active=1 ORDER BY Sequence ASC"))
{
    foreach (MySqlDataReader result in db.DataReader("SELECT * FROM module WHERE Active=1 ORDER BY Sequence ASC"))
    {
        //Do stuff here
    }
}
}
Run Code Online (Sandbox Code Playgroud)

类数据库管理器打开连接并在处理时关闭它:

public DatabaseManager()
{
    this.connectionString = new MySqlConnectionStringBuilder("Server=localhost;Database=businessplan;Uid=root;");
    connect();
}
private bool connect()
{
    bool returnValue = true;
    connection = new MySqlConnection(connectionString.GetConnectionString(false));
    connection.Open();
}

public void …
Run Code Online (Sandbox Code Playgroud)

c# mysqlconnection mysqldatareader

16
推荐指数
2
解决办法
3万
查看次数

WiX CustomActionData在名为CustomAction的位置为空

再一次,我遇到了问题,这可能很容易解决.
我想扩展一个使用WiX创建的设置,以便对已安装程序的配置文件进行更改.为了做到这一点,我创建了一个CustomAction.为了能够更改配置文件,我需要知道它在CustomAction中的(install-)位置.因此,我尝试将INSTALLLOCATION和Filename 传递给我的CustomAction.这就出现了问题:CustomActionData -Attribute始终为空,安装程序抛出异常.

我的CustomAction是一个C#DLL文件:DemoDatumErzeugen.CA.dll.它包含一个DatumEintragen修改配置文件的方法.我试图以这种方式访问​​数据:

string path = session.CustomActionData["LOCATION"];
Run Code Online (Sandbox Code Playgroud)

这是引发异常的地方.我只得到了德国的错误信息,但它说,沿着线的东西:The supplied key was not found in the dictionary(Der angegebene Schlüssel war nicht im Wörterbuch angegeben.).

这是我尝试将属性从我的setup-script传递到自定义操作的方法:

<Binary Id="DemoDatumEinrichtenCA" SourceFile="DemoDatumErzeugen.CA.dll"/>

<CustomAction Id="DemoDatum.SetProperty" Return="check" Property="DatumEintragen" Value="LOCATION=[INSTALLLOCATION];NAME=StrategieplanConfig.xml;"/>
<CustomAction Id="DemoDatum" BinaryKey="DemoDatumEinrichtenCA" DllEntry="DatumEintragen" Execute="deferred" Return="check" HideTarget="no"/>

<InstallExecuteSequence>
  <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
  <Custom Action="DemoDatum" After="DemoDatum.SetProperty"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

我已经看过很多例子,它们以相同的方式完成,或者至少非常相似.我尝试了很多东西,但似乎没有什么比改变价值更有帮助<Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>.CustomActionData始终为零.
我检查一下:session.CustomActionData.Count
我再次感谢任何帮助或暗示我做错了什么.

c# custom-action wix wix3.5

12
推荐指数
1
解决办法
5745
查看次数

尝试合并pdb文件时出现ILMerge异常

我正在尝试将两个程序集合并为一个程序集,它可以很好地工作.然而,当我尝试合并*.pdb文件时,我收到一个错误:

访问路径"F:\ Fentec\Businessplan\trunk\Ausgabe\Debug\modules\Planrechnung\Planrechnung.pdb"被拒绝.

如果我使用/ ndebug选项以跳过合并*.pdb文件,它可以正常工作.但是当然在调试时无法加载符号.起初我想在postbuild事件中调用ILMerge时,Planrechung.pdb正在使用并被锁定.我也尝试关闭VS2010并从命令行调用ILMerge,但结果保持不变.我检查过ProcessExplorer,文件上没有句柄.

这就是我称之为ILMerge的方式:

E:\ XP\Tools\ILMerge\ilmerge /targetplatform:v4,"D:\WINDOWS\Microsoft.NET\Framework\v4.0.30319"/ lib:"F:\ Fentec\Businessplan\trunk\Ausgabe\Debug\bin" /out:Planrechnung.dll"F:\ Fentec\Businessplan\trunk\Ausgabe\Debug\modules\Planrechnung\Planrechnung.dll""F:\ Fentec\Businessplan\trunk\Ausgabe\Debug\modules\Mandantenverwaltung\Mandantenverwaltung.dll"

我错过了什么吗?如果您需要任何其他信息,请询问.

问候,
Skalli

c# ilmerge .net-4.0 visual-studio-2010

11
推荐指数
1
解决办法
3162
查看次数

使用WCF和.NET 4.0在C#中实现SOAP客户端

我在.NET 4.0中开始使用WCF时遇到了麻烦.这是我的情况:

我用PHP创建了一个小型SOAP服务器.我有一个C#项目,我想在其中连接到此服务器并启动SOAP通信.

我的问题是,我不知道如何在C#中做到这一点.我找不到对WCF的正确介绍.有办法做到这一点.但我找不到合适的类和引用来添加到我的C#项目中.是否有任何教程如何在C#中实现这一目标?我搜索了很多,发现什么都没有帮助我.

我想在运行时从我的SOAP服务器加载WSDL,发出SOAP请求,检索答案并完成.但是我在哪里可以开始?关于WCF的MSDN网站只会让我更加困惑.

编辑:可能没有必要在运行时获取WSDL文件.所以不再需要了.
我使用svcutil来创建类并将其嵌入到我的项目中.我还没能测试它,因为我在MySQL数据库上遇到了一些问题(它正在运行并可以从mysql命令行工具或mysqladmin访问,但是我无法使用任何其他程序连接到它...) .一旦我知道它是否有效,我会立即报告.

编辑2:我遵循了Kevs的方法,最终结果非常好.我最后的问题是,我在DLL中使用了服务类.我需要在程序中使用DLL的app.config.在我这样做之后,效果很好.

c# wcf soap web-services

6
推荐指数
1
解决办法
2万
查看次数