大家先看下面的代码: case "Microsoft.Data.Odbc.OdbcConnection":
Microsoft.Data.Odbc.OdbcCommand cmd = (Microsoft.Data.Odbc.OdbcCommand)iCnn.CreateCommand();
cmd.CommandText = strQuery; Microsoft.Data.Odbc.OdbcDataAdapter da = new Microsoft.Data.Odbc.OdbcDataAdapter(cmd);
//iDA = new Microsoft.Data.Odbc.OdbcDataAdapter(strQuery,
// (Microsoft.Data.Odbc.OdbcConnection)iCnn);
da.Fill(dsResult); da.Dispose();
cmd.Dispose(); da = null;
cmd = null;break;我是在用NotesSQL查询Notes数据库的时候。如果DataAdapter用DataAdapter(string StrQuery, ODBCConnection conn)这种构造函数,不管关闭不关闭连接,都要出错。
如果用ODBCCommand做为中间传递的对象,就不会出错,请问这是为什么?另外。出错是在NotesSQL里面出错,然后报ODBC.DLL堆宅溢出。
Microsoft.Data.Odbc.OdbcCommand cmd = (Microsoft.Data.Odbc.OdbcCommand)iCnn.CreateCommand();
cmd.CommandText = strQuery; Microsoft.Data.Odbc.OdbcDataAdapter da = new Microsoft.Data.Odbc.OdbcDataAdapter(cmd);
//iDA = new Microsoft.Data.Odbc.OdbcDataAdapter(strQuery,
// (Microsoft.Data.Odbc.OdbcConnection)iCnn);
da.Fill(dsResult); da.Dispose();
cmd.Dispose(); da = null;
cmd = null;break;我是在用NotesSQL查询Notes数据库的时候。如果DataAdapter用DataAdapter(string StrQuery, ODBCConnection conn)这种构造函数,不管关闭不关闭连接,都要出错。
如果用ODBCCommand做为中间传递的对象,就不会出错,请问这是为什么?另外。出错是在NotesSQL里面出错,然后报ODBC.DLL堆宅溢出。
解决方案 »
- 字符串分割算法->重新整理规则
- 不同电脑不同SQL Server服务器名称,连接字符串server=?
- 属性Font的默认值怎么写
- C# 获得网络上的数据库实例
- c#中使用word组件生成的程序,是否必须在安装了office的主机上才能运行?
- Window service start Workflow
- 我想问下,大家在做数据验证的时候,是怎么做,是选用WEB控件做控制,还是用JAVASCRIPT???如果用JAVASCRIPT做客户端的话,怎么实现好
- 那位高手有xtragrid的中文使用帮助或教程吗?
- 实现IXmlSerializable接口遇到的问题, 对象数组DeSerialize时值返回一个元素的数组? 源码如下
- Replace 替换指定位置的字符串
- TreeView控件的问题
- GDI+问题 如何绘制图片文件,就是画一个图然后保存成文件 急
/// 执行查询语句返回结果集
/// </summary>
/// <param name="strQuery">查询语句</param>
/// <param name="iCnn">数据连接</param>
/// <returns></returns>
/// <res>如果发生了异常,直接向上级调用抛出异常,由上级调用处理。</res>
public static DataSet QueryResult(string strQuery,IDbConnection iCnn)
{ DataSet dsResult = new DataSet();//返回的结果集
IDataAdapter iDA = null; try
{
if (iCnn == null )
{
throw new Exception("数据库连接未初始化!");
}
else
{
//检查数据库连接是否正常
if (iCnn.State != System.Data.ConnectionState.Open)
{
try
{
iCnn.Open();
}
catch
{
throw new Exception("数据库连接打开失败!");
}
} //根据数据连接类型创建数据访问类
switch (iCnn.GetType().ToString())
{
case "System.Data.SqlClient.SqlConnection":
iDA = new System.Data.SqlClient.SqlDataAdapter(strQuery,
(System.Data.SqlClient.SqlConnection)iCnn); break; case "System.Data.OleDb.OleDbConnection":
iDA = new System.Data.OleDb.OleDbDataAdapter(strQuery,
(System.Data.OleDb.OleDbConnection)iCnn); break; case "System.Data.OracleClient.OracleConnection":
iDA = new System.Data.OracleClient.OracleDataAdapter(strQuery,
(System.Data.OracleClient.OracleConnection)iCnn); break; case "Microsoft.Data.Odbc.OdbcConnection":
//Microsoft.Data.Odbc.OdbcDataAdapter oDA = new Microsoft.Data.Odbc.OdbcDataAdapter(strQuery,
// (Microsoft.Data.Odbc.OdbcConnection)iCnn);
//oDA.Fill(dsResult);
//oDA.Dispose();
//oDA = null; Microsoft.Data.Odbc.OdbcCommand cmd = (Microsoft.Data.Odbc.OdbcCommand)iCnn.CreateCommand();
cmd.CommandText = strQuery; Microsoft.Data.Odbc.OdbcDataAdapter da = new Microsoft.Data.Odbc.OdbcDataAdapter(cmd);
//iDA = new Microsoft.Data.Odbc.OdbcDataAdapter(strQuery,
// (Microsoft.Data.Odbc.OdbcConnection)iCnn);
da.Fill(dsResult); da.Dispose();
cmd.Dispose(); da = null;
cmd = null; break;
} if (iDA != null)
{
((Microsoft.Data.Odbc.OdbcDataAdapter)iDA).Fill(dsResult);
((Microsoft.Data.Odbc.OdbcDataAdapter)iDA).Dispose();
}
}
}
catch (Exception exp)
{
#if (DEBUG)
Debug.WriteLine(exp.ToString());
MessageBox.Show(exp.ToString());
//Application.Exit();
#endif
}
iDA = null; return dsResult;
}
这是整个方法的代码