从 MATLAB 调用 ADO.NET
可以从 MATLAB 调用 .NET,因此我想尝试使用 ADO.NET 连接到数据库。
我似乎遇到了阻塞问题 - 每当您尝试创建 Command 对象时,它都会抛出错误。
你可以自己尝试一下:
>> NET.addAssembly('System.Data');
>> sqlconn = System.Data.SqlClient.SqlConnection();
>> sqlconn.State
ans =
Closed
>> % So far, so good
>> sqlcmd = System.Data.SqlClient.SqlCommand();
??? Error using ==> System.Data.SqlClient.SqlCommand
'Connection' is already defined as a property.
>>
有人对此有一些见解吗?对于 MATLAB 来说,这似乎是一个纯粹且简单的错误 - 也许每个恰好具有名为“Connection”的属性的 .NET 类都会发生这种情况。
我是否应该认输并放弃使用 MATLAB 来使用 .NET 与数据库通信?
答案(感谢 Fazil 的调查):将 MATLAB 升级到 2009a 以上的版本。
It's possible to call .NET from MATLAB, so I thought I would try to use ADO.NET to connect to a database.
I seem to have hit a blocking problem - anytime you try and create a Command object, it throws an error.
You can try this yourself:
>> NET.addAssembly('System.Data');
>> sqlconn = System.Data.SqlClient.SqlConnection();
>> sqlconn.State
ans =
Closed
>> % So far, so good
>> sqlcmd = System.Data.SqlClient.SqlCommand();
??? Error using ==> System.Data.SqlClient.SqlCommand
'Connection' is already defined as a property.
>>
Does anyone have some insight into this? It seems like a pure and simple bug on MATLAB's part - maybe it happens with every .NET class that happens to have a property called "Connection".
Should I just throw in the towel and give up on using MATLAB to talk to a database using .NET?
Answer (thank's to Fazil's investigations): Upgrade MATLAB to a version greater than 2009a.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,但要意识到您还可以从 MATLAB 使用 Java,如果您熟悉 JDBC,这将相当简单。
我必须编写一个快速帮助函数,因为 Class.forName() 似乎不尊重 MATLAB 的 javaclasspath,并且必须使用 char() 显式转换字符串,但除此之外它工作得很好:
示例 m-文件:
No, but realize you can also use Java from MATLAB, which is fairly straightforward if you are familiar with JDBC.
I had to write a quick helper function since Class.forName() didn't seem to respect MATLAB's
javaclasspath
, and had to convert strings explicitly with char(), but otherwise it worked fine:example m-file:
我无法在 MATLAB 中重现该问题。您使用的是哪个版本的 MATLAB?
I'm not able to reproduce the issue in MATLAB. Which version of MATLAB are you using?