首页 新闻 会员 周边 捐助

winform创建临时表

0
[已解决问题] 解决于 2014-11-24 17:59

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Favorite]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Favorite]
GO
 
CREATE TABLE [dbo].[Favorite] (
    [FavoriteId] [int] NOT NULL ,
    [FavoriteName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [BookInfoId] [int] NOT NULL ,
    [AssociatorId] [int] NOT NULL ,
    [Del] [tinyint] NOT NULL 
) ON [PRIMARY]
GO

 

请问一般情况下winform要运行创建临时表,然后对临时表进行操作的过程,要怎么处理?多次执行sqlCommond?

乔巴船长的主页 乔巴船长 | 初学一级 | 园豆:159
提问于:2014-11-24 12:53
< >
分享
最佳答案
0

SQL临时表操作,都放在存储过程里面,你想怎么搞就怎么搞

按你的说法是想 在代码里面把创建操作临时表作为参数传递给SQL执行,可以这样

cmd.CommandText="create table.....";
cmd.ExecuteNonQuery();
循环或者其他逻辑 
{
    cmd.CommandText=" ....";
    cmd.ExecuteNonQuery();
}
奖励园豆:5
风醉 | 小虾三级 |园豆:1197 | 2014-11-24 13:46

  您好,我试过把我上面的sql全放在一个Command里执行,但是不管用啊

乔巴船长 | 园豆:159 (初学一级) | 2014-11-24 14:26

@乔巴船长: 你是说你的 command里面的东西 在SQL查询分析器里面可以执行,在代码里面添加就没得到你要的结果集?应该不会吧,或者你调试过程中有米有什么提示

风醉 | 园豆:1197 (小虾三级) | 2014-11-24 14:29

@风醉: 

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=ufdata_001_2014;Integrated Security=True");

            string str = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Favorite]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)";
            str += " drop table [dbo].[Favorite] ";
            str += " GO";
            str += "CREATE TABLE [dbo].[Favorite] ([FavoriteId] [int] NOT NULL ,[FavoriteName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,[BookInfoId] [int] NOT NULL ,[AssociatorId] [int] NOT NULL ,[Del] [tinyint] NOT NULL ) ON [PRIMARY] ";
            str += "GO";
            SqlCommand cmd = new SqlCommand(str, conn);
            conn.Open();
            cmd.ExecuteNonQuery();

   

乔巴船长 | 园豆:159 (初学一级) | 2014-11-24 16:52

@风醉: 上面这样会有问题,请问我要如何修改?

乔巴船长 | 园豆:159 (初学一级) | 2014-11-24 16:57

@乔巴船长: 临时表要加 # 【Create table #temp_project】,你直接这样创建物理表,应该有权限限制吧

风醉 | 园豆:1197 (小虾三级) | 2014-11-24 17:35

@风醉:  谢谢,搞定了,是我自己的问题,没加 go 多几个空格就好了

乔巴船长 | 园豆:159 (初学一级) | 2014-11-24 17:58
其他回答(2)
0

经过分析,我只能认为你SQL SERVER学习的时间肯定NET学习的时间长。

居然知道临时表,不错,值得表扬。

可是WINFORM和临时表这两个词放在一起怎么这么别扭啊,你能告诉我为什么吗?

为什么我的老师从来没有教过我这样做呢?

哦,对了,全看的书,书上也没有这样说过,看来我看的书太少了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-11-24 13:29

我要导入excel的数据到数据库,但是期间要经过处理,所以想先导到临时表,不知道我这么说您听明白没有

支持(0) 反对(0) 乔巴船长 | 园豆:159 (初学一级) | 2014-11-24 14:24

@乔巴船长: 所以我说你应该多学学NET。

我没有看出来在NET中使用临时表的任何必要。

在NET中一大堆对象可以保存临时数据,既然你要处理过再保存到数据库,为什么要保存到临时表?

怕掉电,但是导入EXCEL这个事情是一次性行为,或者说,导入是几分钟或者几个小时内完成的,

为什么要保存到临时表?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-11-24 14:32
0

一个就可以,有多少代码全都拿出来用就行了,一次全都执行了,

只会造轮子 | 园豆:2274 (老鸟四级) | 2014-11-24 13:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册