未处理的“System.StackOverflowException”类型的异常
private void pictureBox4_MouseMove(object sender, MouseEventArgs e)
{
//连接数据库
try
{
string ddd;
//int d = 300;
ddd = "SELECT img FROM SZM WHERE id=" + e.X.ToString();
System.Data.OleDb.OleDbCommand oleCmd = new System.Data.OleDb.OleDbCommand(ddd);
oleCmd.CommandType = CommandType.Text;
OleDbConnection conn = new OleDbConnection();
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= \"D:\\数据库实验C#\\WindowsFormsApplication1\\WindowsFormsApplication1\\bin\\Debug\\SHZRT.mdb\"; Jet OLEDB:Database Password=kxyzjm1962526;";
conn.ConnectionString = connStr;
conn = new OleDbConnection(connStr);
oleCmd.Connection = conn;
conn.Open();
byte[] bytes = (byte[])oleCmd.ExecuteScalar();
MemoryStream ms = new MemoryStream(bytes);
this.pictureBox2.Image = Image.FromStream(ms);
Application.DoEvents();
oleCmd.Dispose();
conn.Close();
conn.Dispose();
ms.Dispose();
bytes = null;
}
catch
{
}
//连接数据库
}
当鼠标在pictureBox4上移动一会后,在红色的那句出现未处理的“System.StackOverflowException”类型的异常出现在 System.Data.dll 中。我知道是反复调用数据库造成了内存溢出,可是我要根据鼠标的位置从数据库中取出图像。如何解决这个问题?
{
//连接数据库
try
{
string ddd;
//int d = 300;
ddd = "SELECT img FROM SZM WHERE id=" + e.X.ToString();
System.Data.OleDb.OleDbCommand oleCmd = new System.Data.OleDb.OleDbCommand(ddd);
oleCmd.CommandType = CommandType.Text;
OleDbConnection conn = new OleDbConnection();
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= \"D:\\数据库实验C#\\WindowsFormsApplication1\\WindowsFormsApplication1\\bin\\Debug\\SHZRT.mdb\"; Jet OLEDB:Database Password=kxyzjm1962526;";
conn.ConnectionString = connStr;
conn = new OleDbConnection(connStr);
oleCmd.Connection = conn;
conn.Open();
byte[] bytes = (byte[])oleCmd.ExecuteScalar();
MemoryStream ms = new MemoryStream(bytes);
this.pictureBox2.Image = Image.FromStream(ms);
Application.DoEvents();
oleCmd.Dispose();
conn.Close();
conn.Dispose();
ms.Dispose();
bytes = null;
}
catch
{
}
//连接数据库
}
当鼠标在pictureBox4上移动一会后,在红色的那句出现未处理的“System.StackOverflowException”类型的异常出现在 System.Data.dll 中。我知道是反复调用数据库造成了内存溢出,可是我要根据鼠标的位置从数据库中取出图像。如何解决这个问题?
...全文
相关推荐
.net 一些无法catch的异常
1.StackOverFlowException (一般来说这个不是真的堆栈不够了,而是你的代码出现了无线递归),如果你用throw new StackOverFlowException 还是可以catch的2.OutOfMemoryException (好像只有 box newarr newobj 才会抛出这个异常)3.非CLS的异常(一般来源于本地代码,这些异常不继承于System.Exception)在.net framework 4.0中默认行为不捕获非CLS的异常在.net framework 2.0中会把非CLS的异常包装为System.Exception的之类(可以catch
System.StackOverflowException(解决方案).md
项目中碰到的,记录一下
C#异常处理总结及简单实例
主要介绍了C#异常处理总结及简单实例的相关资料,需要的朋友可以参考下
异常处理的解决方案
描述了处理异常的解决方案 错误和异常的处理 捕获异常 System.Exception属性 嵌套的try块 用户自定义的异常类
你应该知道的.NET错误与异常处理机制
主要给大家介绍了关于.NET错误与异常处理机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.NET具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧


