使用C# 开发的Winform 程序,使用的是三层结构模式。觉得很好,不怕数据库的连接数量的限制问题。但在开发过程中遇到程序需要创建数据库临时表的问题。可是三层结构模式下数据层在返回后,即断开数据库的连接。这样就没有办法建立临时表了。请各位高手指点一二。谢谢。
解决方案 »
- 怪事:datagridview编辑列时,移动过列的位置,现在列索引与实际的对应关系错了
- c# winform问题请教
- 求c# web2.0 生成静态页面的方案~~
- 请问如下foreach循环的逻辑是什么?
- 曲线图
- rmb50元,求ACCESS+C#实现简单的VOD点播系统~~只需有简单的基本功能
- 水晶报表问题(winform c#)
- JAVA里面有没有类似于.NET里面DataSet的东西,第三方的也行……
- webbrowser进行操作的时候出错,求大神帮忙~
- [初来CSDN,小弟也不知道自己有多少分,反正全给了]数据导出到 XML 如何 控制 XML 的根节点 和一级 节点
- 求一个正则表达式,请高手帮忙
- skinEngine皮肤控件问题
这个和使用基层没什么直接关系吧?
/// 执行SQL语句,返回影响的记录数,不需要传入SqlParameter
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSqlNocmdParms(string connectionString, string SQLString)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(SQLString, conn);
int val = cmd.ExecuteNonQuery();
return val;
}
}
catch (SqlException ex)
{
throw ex;
}
}
=========================
这个是我数据层的代码片段,可以看到连接马上就释放了。
也就是因为ado.net本身是断开式链接,所以你每次取出来的数据,都是临时的内存表.何言不能建.
我的意思是在数据库里建立临时表“create table #tablename",让后程序再去这个临时表(#tablename)做某些查询等工作。比如我的中间层代码片段:
namespace BLL
{
public class CustomerInfo
{
public void ReadAllCustomer()
{
string strSQL = "create table #tablename...";//创建一个临时表,代码有些省略
Sqlserver.ExecuteSqlTran(Sqlserver.connectionString, strSQL);//在数据层执行。注意执行该行后,数据库连接断开。 //问题是,我在接下来是没办法使用该临时表。
//这是MS sQL帮助文档原话:所有其它本地临时表在当前会话结束时自动除去。(即上面那行执行完毕,连接断开后,临时表就消失。)
return;
}
//数据层,执行SQL语句
namespace SQLserverDAL
{
public class Sqlserver
{
public static void ExecuteSqlTran(string connectionString, string strSQL)
{
using (SqlConnection conn = new SqlConnection(connectionString)) //执行完毕,断开连接
{
.....