我的数据库是Syabse11,我使用的是ODBC连接方式,以前是在VS2003下开发的,没有任何异常,项目迁移到VS2005后,发现新开发的窗体都一个问题,就是窗体最大化过之后,再触发窗体的某个数据库操作函数就出现错误,而且还是需要发送错误报告的那种提示框(也就是说程序的try catch 根本不能捕捉到错误)。函数体如下:
private void btn_Query_Click(object sender, System.EventArgs e)
{
ds = db.SelectDataBase("exec CoinTradeCount '"+this.startDate.Value.ToString("yyyyMMddd")+"','"+this.endDate.Value.ToString("yyyyMMddd")+"'",this.table_name);
if(ds!=null)
{
this.dataGrid1.DataSource = ds.Tables[table_name];
}
else
{
CommonUtil.ShowError(this,Constant.NO_DATASET);
}
}错误栈:
System.Data.Odbc.OdbcException
在 System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
在 System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
在 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.Odbc.OdbcConnection.Open()
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
在 waihui.LinkDataBase.SelectDataBase(String tempStrSQL, String tempTableName)
望大家指教!
private void btn_Query_Click(object sender, System.EventArgs e)
{
ds = db.SelectDataBase("exec CoinTradeCount '"+this.startDate.Value.ToString("yyyyMMddd")+"','"+this.endDate.Value.ToString("yyyyMMddd")+"'",this.table_name);
if(ds!=null)
{
this.dataGrid1.DataSource = ds.Tables[table_name];
}
else
{
CommonUtil.ShowError(this,Constant.NO_DATASET);
}
}错误栈:
System.Data.Odbc.OdbcException
在 System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
在 System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
在 System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.Odbc.OdbcConnection.Open()
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
在 waihui.LinkDataBase.SelectDataBase(String tempStrSQL, String tempTableName)
望大家指教!
解决方案 »
- C# 16进制数据显示问题
- <<高难度>>linq的映射不使用设计器也不使用sqlmetal.exe如何映射出 .dbml 文件 和如何根据dbml文件映射出 cs文件?
- 请帮我解释、分析一下这段代码的输出结果(似乎与new关键字的阻断作用有关)
- 有窗体form1和窗体form2,现在如何form2中的值传给form1的变量。求高手!!急!!
- 急,在线等,C#编译问题:用微软的WebDeployment编译网站问题
- 大批量数据操作的问题
- 有前object的问题,高手请进
- 文件保存框点击cancel后如何获得选择路径
- 强烈推荐源代码:Office 2007 Ribbon风格的菜单按钮 [不看别后悔啊:)]
- click事件无效
- 关于虚拟方法
- 手动绘制控件的刷新问题
{
this.strSQL = tempStrSQL;
try
{
this.da = new OdbcDataAdapter(this.strSQL, this.myConnection); if (this.ds != null && this.ds.Tables.Count > 0 && this.ds.Tables[tempTableName] != null)
{
this.ds.Tables[tempTableName].Clear();
}
this.da.Fill(ds, tempTableName);
return this.ds;//返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名
}
catch (Exception ex)
{
logUtil.WriteError(ex, this.GetType(), "SelectDataBase出错");
return null;
}
finally
{
this.da.Dispose();
}
}
没这么妖吧你可以做一个测试,新建一个工程,放一个窗体,只把查询数据库的代码移过来,输出就简单的在一个Listbox里面输出纪录。看看窗体最大化,会不会对查询数据库造成影响。