Tag: db2

.NET DB2 OLEDB先决条件

我在C#,.NET framework 2.0中编写了一个Windows窗体应用程序,它使用System.Data.OleDb与SQL Server 2000数据库通信,该数据库工作正常。 我现在需要增强应用程序以与AS / 400上的DB2数据库通信。 这只是配置连接字符串的问题,还是我需要额外的驱动程序软件(来自哪里)和/或项目中的引用? 我想仍然使用OLEDB,但使用DB2。 编辑:我下载了Microsoft OLE DB提供程序但无法将其安装到我的桌面开发PC上,因为我没有安装SQL Server。 此提供程序似乎仅用于将SQL Server与DB2集成,而我希望将Windows窗体应用程序与DB2集成。 对于不需要SQL Server的OLE DB提供程序,是否有不同的下载位置,我可以从Windows桌面使用它?

引用IBM.Data.DB2中的代码使得程序集不可用于我的其余解决方案

我有一个带有三个程序集的C#控制台应用程序: Main , Common和Utilities 。 在Main集Main.cs的文件中,我有一行: using Utilities; 在Common程序IBM.Data.DB2.dll的目录中,我有DLL IBM.Data.DB2.dll 。 在Utilities集中,我有一个访问所述dll的源模块。 实用程序具有对IBM.Data.DB2的引用。 在这个程序Util.cs的源文件Util.cs ,我有一行: using IBM.Data.DB2; 如果在此文件的方法中,我对DB2程序集中的代码进行任何引用,如: DbConnection c = new DB2Connection( _connectString ); 我收到一个错误,编译Main集,指出无法找到名称空间名称Utilities 。 无论有没有线路, Utilities编译都很好。 如果我注释掉上面这一行,那么一切都很好。

SQL0666 – SQL查询超出指定的时间限制或存储限制

我在使用Odbc连接字符串调用DB2数据库时会定期收到此错误消息。 我已经尝试将DbCommand对象的CommandTimeout设置为多个值,但我仍然收到以下错误。 SQL0666 – SQL查询超出指定的时间限制或存储限制。 是否有一个技巧来阻止错误输出。 这很奇怪,因为相同的查询有时会起作用,有时会超时。 任何帮助,将不胜感激。 谢谢!

iDB2选择命令,其参数返回SQL0418

我正在开发一个使用IBM.Data.DB2.iSeries.dll连接到DB2 iSeries 7.1数据库的.NET应用程序。 我需要执行一个SELECT命令,该命令具有n个参数,这些参数在查询中定义为@paramX ,之后设置参数值,但是当我运行代码时,我得到一个SQL048 Use of parameter marker not valid. 。 我到处搜索文档/示例,但我读过的所有内容都与我正在使用的代码相同。 我错过了什么吗? 如果这是无效的,最好的选择是什么? 这是我用来测试的隔离代码。 static void Main(string[] args) { String myConnectionString = “DataSource=*******;Database=*******;UserId=*******;Password=*******;”; iDB2Connection myConnection = new iDB2Connection(); try{ myConnection.ConnectionString = myConnectionString; myConnection.Open(); var cmd = new iDB2Command(“SELECT TIMESTAMP(DATE(@param0),TIME(@param1)) FROM SYSIBM.SYSDUMMY1”, myConnection); cmd.Parameters.Add(new iDB2Parameter(“@param0”, iDB2DbType.iDB2Char)); cmd.Parameters[“@param0”].Value = “1900-01-01”; cmd.Parameters.Add(new iDB2Parameter(“@param1”, iDB2DbType.iDB2Char)); cmd.Parameters[“@param1”].Value = […]

通过.NET DbConnection连接到DB2

我们当前的数据库连接提供程序模型依赖于数据库连接来使用基于DbConnection(System.Data)的对象。 我们可以通过OdbcConnection连接到DB2(* Nix * Windows),但我们希望允许使用本机DB2驱动程序。 有没有办法这样做(.Net框架,OpenSource或(最后选择)供应商)而不脱离我们当前的DAL模型?

IBM DB2问题 – System.BadImageFormatException:无法加载文件或程序集IBM.DB2.DLL或其依赖项之一

我收到上面提到的错误消息。 我已经做了足够的研究并尝试了各种选择,但仍然没有运气。 以下是详细信息: OS: Windows 7 64 bit version Visual studio version: 2013 Premium .NET framework version is : 4.0.30319 ASP.NET version: 4.0.30319.34249 IIS version: 7.0 DB2 installed path: C:\Program Files (x86)\IBM DLL path: C:\Program Files (x86)\IBM\SQLLIB\BIN\netf40\IBM.DB2.dll DLL Version: 9.7.4.4 我还将我的解决方案配置管理器平台更改为任何CPU ,并且我还通过将属性启用32位应用程序设置为True来更改应用程序池中的设置。 但仍然得到同样的错误。 还有其他解决方法吗? 请帮我提一下你的建议。

如何连接到DB2?

我必须连接到其他系统上安装的DB2数据库。 我有服务器的机器名,我想要连接的数据库名,端口号和凭据。 我的DB2系统上没有安装任何客户端。 我想使用OLEDB连接。 我可以在不安装客户端的情况下实现此目 还让我知道什么参考dll将帮助我实现这一点,即我应该使用什么 – 用于DB2的IBM OLE DB提供程序或用于IBM DB2的Microsoft OLEDB提供程序或其他? 我在哪里可以找到它们?

来自.NET的参数化DB2查询

我试图使用客户端访问ODBC驱动程序使用以下代码从.NET运行针对DB2数据库的参数化查询: var db2Cmd = new OdbcCommand(“INSERT INTO presnlats (LAT) VALUES (@LAT)”, db2Conn); db2Cmd.Parameters.AddWithValue(“@LAT”, insertValue); Console.Out.WriteLine(db2Cmd.ExecuteNonQuery()); 执行时,抛出OdbcException : 错误[42S22] [IBM] [iSeries Access ODBC驱动程序] [DB2 UDB] SQL0206 – 列@LAT不在指定的表中。 互联网似乎暗示客户端访问ODBC驱动程序支持参数化查询,但此错误似乎表示不同。 提供的代码有什么问题吗?

使用c#进行查询validation

我在c#中寻找一个查询validation器,它允许我从文本框中解析SQL文本,并在发送它执行之前validation它是否正确。 (MS SQL或DB2查询)。

T-Sql中的时间戳在C#中意味着什么?

我正在尝试开发一个模型对象来保存一个Sql Server行,我完全理解除了T-Sql / SqlServer时间戳之外如何做到这一点。 该表定义为: CREATE TABLE activity ( activity_id int , ip_address varchar(39) , user_id varchar(255) , message_text , dt timestamp ) 当我将表行解析为我的对象时,对于int或字符串,我希望做类似的事情: ActivityID = (int)dataReader[“activity_id”]; IPAddress = (string)dataReader[“ip_address”]; 但是我该如何处理时间戳列? 我可以在任何地方找到没有“timestamp”数据类型。 我知道Sql Server将时间戳存储为8字节的二进制文件,但这通常与.NET中的相同? 编辑添加:一些额外的信息……这是从我们的大型机上的DB2表返回的一行,来自Sql Server视图。 “Rowversion”不是一个选项,DB2正在将列作为时间戳处理。 如果timestamp和rowversion相同,也许我可以将它视为一个,但否则我会遇到时间戳。 再次编辑补充说:这个项目将让我疯狂。 它至少会是一次短途旅行。 无论如何,是的@JoelC这是一个Sql Server视图,进入大型机上的DB2数据库。 我终于能够找到我们的一位DBA,他们轻蔑地解释说“当然”DB2 TIMESTAMP在Sql Server视图中遇到日期时间。 根据他的语调,我猜只有新手不知道这一点。 这就是为什么他在实际视图中将其命名为“datetime”,Duh! (我在我的示例中给它一个不同的名称,以便不触发对命名约定的评论 – 实际的数据模型图表示它是TIMESTAMP并将其命名为时间戳)。 所以,在这种情况下,显然必须将其转换为DateTime。 我想我可能会开始考虑成为一名DBA,这样我也可以让程序员疯狂。 对不起,如果我误导了这个问题的任何响应者 – 这是无意的,因为我实际上期待时间戳是一个时间戳。 […]