C# Winform 三层结构和MS SQL数据库问题? 使用C# 开发的Winform 程序,使用的是三层结构模式。觉得很好,不怕数据库的连接数量的限制问题。但在开发过程中遇到程序需要创建数据库临时表的问题。可是三层结构模式下数据层在返回后,即断开数据库的连接。这样就没有办法建立临时表了。请各位高手指点一二。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用C# 开发的Winform 程序,使用的是三层结构模式。觉得很好,不怕数据库的连接数量的限制问题。这个和使用基层没什么直接关系吧? /// <summary> /// 执行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)) //执行完毕,断开连接 { ..... 可是三层结构模式下数据层在返回后,即断开数据库的连接。这样就没有办法建立临时表了。 没看懂。dataset 【一个基本的问题,这样的属性怎么访问到?】 application.exit如何关闭子线程 关于类型转换 asp.net 为什么把JS文件的扩展名写成ASHX C#怎样把字符串“林地1994”转化成“1994年林地面积”? 发布一个仿XP风格的Form类,顶者有分 刚才抄袭,更改了一个网络程序,关于在线聊天的。server端出现的问题不知道怎么解决,大家帮忙看看 求Visual Source safe 6.0的下载地址. 能提供FTP也行 如何保存任意实体? 用C#写的windows应用程序,是不是运行的机子上必须有.net 求一个正则表达式,请高手帮忙 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)) //执行完毕,断开连接
{
.....