引发类型为“System.OutOfMemoryException”的异常 高手指教!!!!! [WebMethod]
public DataTable searchSaleOrder(string _sql)
{
db dataBase = new db();
DataTable ds1 = dataBase.selectResultToTable(_sql);
return ds1;
} [WebMethod]
public DataSet searchSaleOrder2()
{
Sale sa = new Sale(); return sa.SaleOrder();
}这是两个方法 db database = new db();
DataSet ds; private DataTable Sales()
{
string sql = "select * from lms_sale_order_master master join lms_sale_order_item item on master.master_id=item.master_id join lms_saleitem_detail detail on item.item_id=detail.item_id ";
return database.selectResultToTable(sql);
}
public DataSet SaleOrder()
{
if (ds == null)
{
ds = new DataSet();
ds.Tables.Add(Sales());
}
return ds;
}这个是Sale类里面写的方法
前台有个窗体去调用这个webservice里面的方法,返回语句,进行查询。
以上的代码都是在webservice里面写的。现在报引发类型为“System.OutOfMemoryException”的异常,高手帮忙解决下,说的仔细点,谢谢!!!
public DataTable searchSaleOrder(string _sql)
{
db dataBase = new db();
DataTable ds1 = dataBase.selectResultToTable(_sql);
return ds1;
} [WebMethod]
public DataSet searchSaleOrder2()
{
Sale sa = new Sale(); return sa.SaleOrder();
}这是两个方法 db database = new db();
DataSet ds; private DataTable Sales()
{
string sql = "select * from lms_sale_order_master master join lms_sale_order_item item on master.master_id=item.master_id join lms_saleitem_detail detail on item.item_id=detail.item_id ";
return database.selectResultToTable(sql);
}
public DataSet SaleOrder()
{
if (ds == null)
{
ds = new DataSet();
ds.Tables.Add(Sales());
}
return ds;
}这个是Sale类里面写的方法
前台有个窗体去调用这个webservice里面的方法,返回语句,进行查询。
以上的代码都是在webservice里面写的。现在报引发类型为“System.OutOfMemoryException”的异常,高手帮忙解决下,说的仔细点,谢谢!!!
如果太大了.建议分页
return database.selectResultToTable(sql);
返回的是语句,在前台在通过返回来的语句,进行判断,前台有查询的条件
return database.selectResultToTable(sql);
selectResultToTable这个事已个方法,如下:
public DataTable selectResultToTable(string sql)
{
SqlConnection conn = connection();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter oda = new SqlDataAdapter();
DataSet ds1 = new DataSet();
oda.SelectCommand = cmd;
oda.Fill(ds1, "user");
DataTable dt1 = ds1.Tables["user"]; conn.Dispose();
conn.Close();
return dt1;
}这个方法写在已个类里面,这里面还有连接数据库的方法等
<!--
设置 compilation debug="true" 可将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="false"> <assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies> </compilation>
<!--
通过 <authentication> 节可以配置 ASP.NET 用来
识别进入用户的
安全身份验证模式。
-->
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
--> <pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages> <httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>这么一堆,具体是哪里啊?
资源要释放
修改machine.config配置文件中的配置节<processModel>的属性memoryLimit
资源要释放
修改machine.config配置文件中的配置节 <processModel>的属性memoryLimit支持此答案
可还是不行, try{}
catch 也用了
select * from lms_sale_order_master master join lms_sale_order_item item on master.master_id=item.master_id join lms_saleitem_detail detail on item.item_id=detail.item_id
看看需要多久,估计是执行Sql超时了,最好能分页
如何分页显示?我前台做的是窗体,有一些查询的条件,我是想把语句返回前台,在前台进行条件的筛选,最终查出数据请指教!
不知道啊,怎么分啊?在webservice分?现在是在webservice里面返回那个方法的时候报的错,那个方法里面就放的我那些语句