社区
C#
帖子详情
一个文件把它压缩以后上传保存到sql数据库,数据库中字段的类型是Image类型的。又怎么从数据库中把它读取出来。
赵一一
2008-06-26 08:44:18
一个本地文件把它压缩以后上传保存到sql数据库,数据库中字段的类型是Image类型的(二进制)。怎么压缩上传啊?又怎么从数据库中把它读取出来。保存到数据库中了。怎么把它取出来放到本地啊。谁有调试通过的代码?兄弟急等啊。
...全文
151
2
打赏
收藏
一个文件把它压缩以后上传保存到sql数据库,数据库中字段的类型是Image类型的。又怎么从数据库中把它读取出来。
一个本地文件把它压缩以后上传保存到sql数据库,数据库中字段的类型是Image类型的(二进制)。怎么压缩上传啊?又怎么从数据库中把它读取出来。保存到数据库中了。怎么把它取出来放到本地啊。谁有调试通过的代码?兄弟急等啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵一一
2008-06-27
打赏
举报
回复
谢谢。兄弟解答
halk
2008-06-26
打赏
举报
回复
压缩就用winrar压缩是了。如果想在程序中实现,参考这个帖子:http://topic.csdn.net/t/20040630/10/3133568.html
上传用FileUpload。服务器端读取文件的二进制数据并存入数据库中相应的image型字段。
至于读出来,就是逆过程呗!从数据库读取字段数据并按照原来的文件名保存便是。如果需要程序解压缩,仍使用上面给出的帖子中的库。
管家婆
数据库
极佳
SQL
数据库
修复
极佳
SQL
数据库
修复大师10.0,支持MS
SQL
7.0 2000 2005 2008 2008R2 2012 2014 2016 2017 支持各种ERP
数据库
金蝶 速达 用友 管家婆等等基于MS
SQL
数据库
。支持
数据库
无法附加 报错等故障。 支持 各种版本
SQL
数据库
质疑 置疑 断电损坏。 支持
SQL
数据库
损坏 无法附加 各种报错问题修复。 支持
SQL
数据库
823 824 825页损坏等各类错误修复。 支持 MDF NDF
文件
修复 支持备份
文件
修复完美支持各种字符集,支持从MDF
文件
反删除记录。 支持
SQL
数据库
各种
字段
类型
支持
压缩
表
压缩
页
压缩
记录恢复 支持
sql
数据库
系统表报错 系统表不一致 断电非法关机坏道导致的可疑 置疑
数据库
挂起等故障 支持
SQL
数据库
PFS GAM SGAM 页损坏 不是有效的
数据库
等 不是有效的
文件
头等恢复 支持
SQL
数据库
DBCC 无法修复的
数据库
数据恢复 支持
SQL
数据库
被勒索病毒加密的数据恢复。(大多被加密
数据库
都是非完全加密) 支持 blob,
image
,xml, 跨页数据以及文本大
字段
恢复 支持
sql
数据库
多用户架构,以及NDF
文件
组。 支持
保存
表 数据 存储过程 触发器 视图 函数等元数据及用户数据 支持
保存
为脚本或者直接连到
SQL
保存
到
SQL
数据库
扫描勒索病毒
数据库
及 损坏严重的
数据库
请选择 标准恢复模式 如果发现有表应该有数据但是标准恢复模式没有扫描到 或表数据乱码 或表记录很少 可以用高级恢复模式尝试。 如果两种恢复模式都看不到本应该有数据的表,可以联系我们进行人工恢复。 www.
sql
110.com www.
sql
119.com TEL 13510228421 QQ 1186505712
数据库
操作语句大全(
sql
)
数据库
操作语句大全(
sql
) 一、基础 1、说明:创建
数据库
CREATE DATABASE database-name 2、说明:删除
数据库
drop database dbname 3、说明:备份
sql
server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\ms
sql
7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加
一个
列 Alter table tabname add column col type 注:列增加后将不能删除。DB2
中
列加上后数据
类型
也不能改变,唯一能改变的是增加varchar
类型
的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的
sql
语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表
中
任何重复行而派生出
一个
结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1
中
但不在 TABLE2
中
的行并消除所有重复行而派生出
一个
结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2
中
都有的行并消除所有重复行而派生出
一个
结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL
: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right (outer) join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full/cross (outer) join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表
中
的所有记录。 12、分组:Group by: 一张表,一旦分组 完成后,查询后只能得到组相关的信息。 组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准) 在
SQL
Server
中
分组时:不能以text,ntext,
image
类型
的
字段
作为分组依据 在selecte统计函数
中
的
字段
,不能和普通的
字段
放在一起; 13、对
数据库
进行操作: 分离
数据库
: sp_detach_db; 附加
数据库
:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改
数据库
的名称: sp_renamedb 'old_name', 'new_name' 二、提升 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 11(仅用于
SQl
Server) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b; 3、说明:跨
数据库
之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体
数据库
’ where 条件 例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、说明:子查询(表名1:a 表名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6、说明:外连接查询(表名1:a 表名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、说明:在线视图查询(表名1:a ) select * from (SELECT a,b,c FROM a) T where t.a > 1; 8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数值1 and 数值2 9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表
中
已经在副表
中
没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 12、说明:日程安排提前五分钟提醒
SQL
: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 13、说明:一条
sql
语句搞定
数据库
分页 select top 10 b.* from (select top 20 主键
字段
,排序
字段
from 表名 order by 排序
字段
desc) a,表名 b where b.主键
字段
= a.主键
字段
order by a.排序
字段
具体实现: 关于
数据库
分页: declare @start int,@end int @
sql
nvarchar(600) set @
sql
=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’ exec sp_execute
sql
@
sql
注意:在top后不能直接跟
一个
变量,所以在实际应用
中
只有这样的进行特殊的处理。Rid为
一个
标识列,如果top后还有具体的
字段
,这样做是非常有好处的。因为这样可以避免 top的
字段
如果是逻辑索引的,查询的结果后实际表
中
的不一致(逻辑索引
中
的数据有可能和数据表
中
的不一致,而查询时如果处在索引则首先查询索引) 14、说明:前10条记录 select top 10 * form table1 where 范围 15、说明:选择在每一组b值相同的数据
中
对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b) 16、说明:包括所有在 TableA
中
但不在 TableB和TableC
中
的行并消除所有重复行而派生出
一个
结果表 (select a from tableA ) except (select a from tableB) except (select a from tableC) 17、说明:随机取出10条数据 select top 10 * from tablename order by newid() 18、说明:随机选择记录 select newid() 19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into tablename select * from temp 评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作 3),例如:在
一个
外部表
中
导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的
字段
,怎样删除重复
字段
alter table tablename --添加
一个
自增列 add column_b int identity(1,1) delete from tablename where column_b not in( select max(column_b) from tablename group by column1,column2,...) alter table tablename drop column column_b 20、说明:列出
数据库
里所有的表名 select name from sysobjects where type='U' // U代表用户 21、说明:列出表里的所有的列名 select name from syscolumns where id=object_id('TableName') 22、说明:列示type、vender、pcs
字段
,以type
字段
排列,case可以方便地实现多重选择,类似select
中
的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type vender pcs 电脑 A 1 电脑 A 1 光盘 B 2 光盘 A 2 手机 B 3 手机 C 3 23、说明:初始化表table1 TRUNCATE TABLE table1 24、说明:选择从10到15的记录 select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc 三、技巧 1、1=1,1=2的使用,在
SQL
语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @str
SQL
= 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere end else begin set @str
SQL
= 'select count(*) as Total from [' + @tblName + ']' end 我们可以直接写成 错误!未找到目录项。 set @str
SQL
= 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere 2、收缩
数据库
--重建索引 DBCC REINDEX DBCC INDEXDEFRAG --收缩数据和日志 DBCC SHRINKDB DBCC SHRINKFILE 3、
压缩
数据库
dbcc shrinkdatabase(dbname) 4、转移
数据库
给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复
数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER GO DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK GO ALTER DATABASE [dvbbs] SET MULTI_USER GO 7、日志清除 SET NOCOUNT ON DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT USE tablename -- 要操作的
数据库
名 SELECT @LogicalFileName = 'tablename_log', -- 日志
文件
名 @MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 1 -- 你想设定的日志
文件
的大小(M) Setup / initialize DECLARE @OriginalSize int SELECT @OriginalSize = size FROM sysfiles WHERE name = @LogicalFileName SELECT 'Original Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName CREATE TABLE DummyTrans (DummyColumn char (8000) not null) DECLARE @Counter INT, @StartTime DATETIME, @TruncLog VARCHAR(255) SELECT @StartTime = GETDATE(), @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' DBCC SHRINKFILE (@LogicalFileName, @NewSize) EXEC (@TruncLog) -- Wrap the log if necessary. WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSize BEGIN -- Outer loop. SELECT @Counter = 0 WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) BEGIN -- update INSERT DummyTrans VALUES ('Fill Log') DELETE DummyTrans SELECT @Counter = @Counter + 1 END EXEC (@TruncLog) END SELECT 'Final Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),size) + ' 8K pages or ' + CONVERT(VARCHAR(30),(size*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName DROP TABLE DummyTrans SET NOCOUNT OFF 8、说明:更改某个表 exec sp_changeobjectowner 'tablename','dbo' 9、存储更改全部表 CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128) AS DECLARE @Name as NVARCHAR(128) DECLARE @Owner as NVARCHAR(128) DECLARE @OwnerName as NVARCHAR(128) DECLARE curObject CURSOR FOR select 'Name' = name, 'Owner' = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name OPEN curObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGIN if @Owner=@OldOwner begin set @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end -- select @name,@NewOwner,@OldOwner FETCH NEXT FROM curObject INTO @Name, @Owner END close curObject deallocate curObject GO 10、
SQL
SERVER
中
直接循环写入数据 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end 案例: 有如下表,要求就裱
中
所有沒有及格的成績,在每次增長0.1的基礎上,使他們剛好及格: Name score Zhangshan 80 Lishi 59 Wangwu 50 Songquan 69 while((select min(score) from tb_table)<60) begin update tb_table set score =score*1.01 where score60 break else continue end 数据开发-经典 1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多 2.
数据库
加密: select encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 3.取回表
中
字段
: declare @list varchar(1000), @
sql
nvarchar(1000) select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A' set @
sql
='select '+right(@list,len(@list)-1)+' from 表A' exec (@
sql
) 4.查看硬盘分区: EXEC master..xp_fixeddrives 5.比较A,B表是否相等: if (select checksum_agg(binary_checksum(*)) from A) = (select checksum_agg(binary_checksum(*)) from B) print '相等' else print '不相等' 6.杀掉所有的事件探察器进程: DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses WHERE program_name IN('
SQL
profiler',N'
SQL
事件探查器') EXEC sp_msforeach_worker '?' 7.记录搜索: 开头到N条记录 Select Top N * From 表 ------------------------------- N到M条记录(要有主索引ID) Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc ---------------------------------- N到结尾记录 Select Top N * From 表 Order by ID Desc 案例 例如1:一张表有一万多条记录,表的第
一个
字段
RecID 是自增长
字段
, 写
一个
SQL
语句, 找出表的第31到第40个记录。 select top 10 recid from A where recid not in(select top 30 recid from A) 分析:如果这样写会产生某些问题,如果recid在表
中
存在逻辑索引。 select top 10 recid from A where……是从索引
中
查找,而后面的select top 30 recid from A则在数据表
中
查找,这样由于索引
中
的顺序有可能和数据表
中
的不一致,这样就导致查询到的不是本来的欲得到的数据。 解决方案 1, 用order by select top 30 recid from A order by ricid 如果该
字段
不是自增长,就会出现问题 2, 在那个子查询
中
也加条件:select top 30 recid from A where recid>-1 例2:查询表
中
的最后以条记录,并不知道这个表共有多少数据,以及表结构。 set @s = 'select top 1 * from T where pid not in (select top ' + str(@count-1) + ' pid from T)' print @s exec sp_execute
sql
@s 9:获取当前
数据库
中
的所有用户表 select Name from sysobjects where xtype='u' and status>=0 10:获取某
一个
表的所有
字段
select name from syscolumns where id=object_id('表名') select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '表名') 两种方式的效果相同 11:查看与某
一个
表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%' 12:查看当前
数据库
中
所有存储过程 select name as 存储过程名称 from sysobjects where xtype='P' 13:查询用户创建的所有
数据库
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa') 或者 select dbid, name AS DB_NAME from master..sysdatabases where sid 0x01 14:查询某
一个
表的
字段
和数据
类型
select column_name,data_type from information_schema.columns where table_name = '表名' 15:不同服务器
数据库
之间的数据操作 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', '
SQL
OLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.
数据库
名.dbo.表名 --导入示例 select * into 表 from ITSV.
数据库
名.dbo.表名 --
以后
不再使用时删除链接服务器 exec sp_dropserver 'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名) --生成本地表 select * into 表 from openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名) --把本地表导入远程表 insert openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名) select *from 本地表 --更新本地表 update b set b.列A=a.列A from openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名)as a inner join 本地表 b on a.column1=b.column1 --openquery用法需要创建
一个
连接 --首先创建
一个
连接创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', '
SQL
OLEDB ', '远程服务器名或ip地址 ' --查询 select * FROM openquery(ITSV, 'SELECT * FROM
数据库
.dbo.表名 ') --把本地表导入远程表 insert openquery(ITSV, 'SELECT * FROM
数据库
.dbo.表名 ') select * from 本地表 --更新本地表 update b set b.列B=a.列B FROM openquery(ITSV, 'SELECT * FROM
数据库
.dbo.表名 ') as a inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset SELECT * FROM opendatasource( '
SQL
OLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta --把本地表导入远程表 insert opendatasource( '
SQL
OLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').
数据库
.dbo.表名 select * from 本地表
SQL
Server基本函数
SQL
Server基本函数 1.字符串函数 长度与分析用 1,datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用
中
以len(expression)取得其长度 3,right(char_expr,int_expr) 返回字符串右边第int_expr个字符,还用left于之相反 4,isnull( check_expression , replacement_value )如果check_expression為空,則返回replacement_value的值,不為空,就返回check_expression字符操作类 5,Sp_addtype 自定義數據類型 例如:EXEC sp_addtype birthday, datetime, 'NULL' 6,set nocount {on|off} 使返回的结果
中
不包含有关受 Transact-
SQL
语句影响的行数的信息。如果存储过程
中
包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-
SQL
语句影响的行数)。 SET NOCOUNT 为 OFF 时,返回计数 常识 在
SQL
查询
中
:from后最多可以跟多少张表或视图:256 在
SQL
语句
中
出现 Order by,查询时,先排序,后取 在
SQL
中
,
一个
字段
的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。
SQL
Server2000同步复制技术实现步骤 一、 预备工作 1.发布服务器,订阅服务器都创建
一个
同名的windows用户,并设置相同的密码,做为发布快照
文件
夹的有效访问用户 --管理工具 --计算机管理 --用户和组 --右键用户 --新建用户 --建立
一个
隶属于administrator组的登陆windows的用户(SynUser) 2.在发布服务器上,新建
一个
共享目录,做为发布的快照
文件
的存放目录,操作: 我的电脑--D:\ 新建
一个
目录,名为: PUB --右键这个新建的目录 --属性--共享 --选择"共享该
文件
夹" --通过"权限"按纽来设置具体的用户权限,保证第一步
中
创建的用户(SynUser) 具有对该
文件
夹的所有权限 --确定 3.设置
SQL
代理(
SQL
SERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置) 开始--程序--管理工具--服务 --右键
SQL
SERVERAGENT --属性--登陆--选择"此账户" --输入或者选择第一步
中
创建的windows登录用户名(SynUser) --"密码"
中
输入该用户的密码 4.设置
SQL
Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置) 企业管理器 --右键
SQL
实例--属性 --安全性--身份验证 --选择"
SQL
Server 和 Windows" --确定 5.在发布服务器和订阅服务器上互相注册 企业管理器 --右键
SQL
Server组 --新建
SQL
Server注册... --下一步--可用的服务器
中
,输入你要注册的远程服务器名 --添加 --下一步--连接使用,选择第二个"
SQL
Server身份验证" --下一步--输入用户名和密码(SynUser) --下一步--选择
SQL
Server组,也可以创建
一个
新组 --下一步--完成 6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施
中
没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称
中
输入的是发布服务器的IP) 开始--程序--Microsoft
SQL
Server--客户端网络实用工具 --别名--添加 --网络库选择"tcp/ip"--服务器别名输入
SQL
服务器名 --连接参数--服务器名称
中
输入
SQL
服务器ip地址 --如果你修改了
SQL
的端口,取消选择"动态决定端口",并输入对应的端口号 二、 正式配置 1、配置发布服务器 打开企业管理器,在发布服务器(B、C、D)上执行以下步骤: (1) 从[工具]下拉菜单的[复制]子菜单
中
选择[配置发布、订阅服务器和分发]出现配置发布和分发向导 (2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他
sql
的服务器(选择自己) (3) [下一步] 设置快照
文件
夹 采用默认\\servername\Pub (4) [下一步] 自定义配置 可以选择:是,让我设置分发
数据库
属性启用发布服务器或设置发布设置 否,使用下列默认设置(推荐) (5) [下一步] 设置分发
数据库
名称和位置 采用默认值 (6) [下一步] 启用发布服务器 选择作为发布的服务器 (7) [下一步] 选择需要发布的
数据库
和发布
类型
(8) [下一步] 选择注册订阅服务器 (9) [下一步] 完成配置 2、创建出版物 发布服务器B、C、D上 (1)从[工具]菜单的[复制]子菜单
中
选择[创建和管理发布]命令 (2)选择要创建出版物的
数据库
,然后单击[创建发布] (3)在[创建发布向导]的提示对话框
中
单击[下一步]系统就会弹出
一个
对话框。对话框上的内容是复制的三个
类型
。我们现在选第
一个
也就是默认的快照发布(其他两个大家可以去看看帮助) (4)单击[下一步]系统要求指定可以订阅该发布的
数据库
服务器
类型
,
SQL
SERVER允许在不同的
数据库
如 orACLE或ACCESS之间进行数据复制。 但是在这里我们选择运行"
SQL
SERVER 2000"的
数据库
服务器 (5)单击[下一步]系统就弹出
一个
定义文章的对话框也就是选择要出版的表 注意: 如果前面选择了事务发布 则再这一步
中
只能选择带有主键的表 (6)选择发布名称和描述 (7)自定义发布属性 向导提供的选择: 是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性 否 根据指定方式创建发布 (建议采用自定义的方式) (8)[下一步] 选择筛选发布的方式 (9)[下一步] 可以选择是否允许匿名订阅 1)如果选择署名订阅,则需要在发布服务器上添加订阅服务器 方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器]
中
添加 否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅 如果仍然需要匿名订阅则用以下解决办法 [企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅 2)如果选择匿名订阅,则配置订阅服务器时不会出现以上提示 (10)[下一步] 设置快照 代理程序调度 (11)[下一步] 完成配置 当完成出版物的创建后创建出版物的
数据库
也就变成了
一个
共享
数据库
有数据 srv1.库名..author有
字段
:id,name,phone, srv2.库名..author有
字段
:id,name,telphone,adress 要求: srv1.库名..author增加记录则srv1.库名..author记录增加 srv1.库名..author的phone
字段
更新,则srv1.库名..author对应
字段
telphone更新 --*/ --大致的处理步骤 --1.在 srv1 上创建连接服务器,以便在 srv1
中
操作 srv2,实现同步 exec sp_addlinkedserver 'srv2','','
SQL
OLEDB','srv2的
sql
实例名或ip' exec sp_addlinkedsrvlogin 'srv2','false',null,'用户名','密码' go --2.在 srv1 和 srv2 这两台电脑
中
,启动 msdtc(分布式事务处理服务),并且设置为自动启动 。我的电脑--控制面板--管理工具--服务--右键 Distributed Transaction Coordinator--属性--启动--并将启动
类型
设置为自动启动 go --然后创建
一个
作业定时调用上面的同步处理存储过程就行了 企业管理器 --管理 --
SQL
Server代理 --右键作业 --新建作业 --"常规"项
中
输入作业名称 --"步骤"项 --新建 --"步骤名"
中
输入步骤名 --"
类型
"
中
选择"Transact-
SQL
脚本(T
SQL
)" --"
数据库
"选择执行命令的
数据库
--"命令"
中
输入要执行的语句: exec p_process --确定 --"调度"项 --新建调度 --"名称"
中
输入调度名称 --"调度
类型
"
中
选择你的作业执行安排 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将
SQL
Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法: 我的电脑--控制面板--管理工具--服务--右键
SQL
SERVERAGENT--属性--启动
类型
--选择"自动启动"--确定. --3.实现同步处理的方法2,定时同步 --在srv1
中
创建如下的同步处理存储过程 create proc p_process as --更新修改过的数据 update b set name=i.name,telphone=i.telphone from srv2.库名.dbo.author b,author i where b.id=i.id and (b.name i.name or b.telphone i.telphone) --插入新增的数据 insert srv2.库名.dbo.author(id,name,telphone) select id,name,telphone from author i where not exists( select * from srv2.库名.dbo.author where id=i.id) --删除已经删除的数据(如果需要的话) delete b from srv2.库名.dbo.author b where not exists( select * from author where id=b.id) go
经典
SQL
语句大全
一、基础 1、说明:创建
数据库
CREATE DATABASE database-name 2、说明:删除
数据库
drop database dbname 3、说明:备份
sql
server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\ms
sql
7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加
一个
列 Alter table tabname add column col type 注:列增加后将不能删除。DB2
中
列加上后数据
类型
也不能改变,唯一能改变的是增加varchar
类型
的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的
sql
语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表
中
任何重复行而派生出
一个
结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1
中
但不在 TABLE2
中
的行并消除所有重复行而派生出
一个
结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2
中
都有的行并消除所有重复行而派生出
一个
结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left (outer) join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL
: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right (outer) join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full/cross (outer) join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表
中
的所有记录。 12、分组:Group by: 一张表,一旦分组 完成后,查询后只能得到组相关的信息。 组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准) 在
SQL
Server
中
分组时:不能以text,ntext,
image
类型
的
字段
作为分组依据 在selecte统计函数
中
的
字段
,不能和普通的
字段
放在一起; 13、对
数据库
进行操作: 分离
数据库
: sp_detach_db; 附加
数据库
:sp_attach_db 后接表明,附加需要完整的路径名 14.如何修改
数据库
的名称: sp_renamedb 'old_name', 'new_name' 二、提升 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 11(仅用于
SQl
Server) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b; 3、说明:跨
数据库
之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体
数据库
’ where 条件 例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、说明:子查询(表名1:a 表名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6、说明:外连接查询(表名1:a 表名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、说明:在线视图查询(表名1:a ) select * from (SELECT a,b,c FROM a) T where t.a > 1; 8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数值1 and 数值2 9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’) 10、说明:两张关联表,删除主表
中
已经在副表
中
没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 12、说明:日程安排提前五分钟提醒
SQL
: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 13、说明:一条
sql
语句搞定
数据库
分页 select top 10 b.* from (select top 20 主键
字段
,排序
字段
from 表名 order by 排序
字段
desc) a,表名 b where b.主键
字段
= a.主键
字段
order by a.排序
字段
具体实现: 关于
数据库
分页: declare @start int,@end int @
sql
nvarchar(600) set @
sql
=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’ exec sp_execute
sql
@
sql
注意:在top后不能直接跟
一个
变量,所以在实际应用
中
只有这样的进行特殊的处理。Rid为
一个
标识列,如果top后还有具体的
字段
,这样做是非常有好处的。因为这样可以避免 top的
字段
如果是逻辑索引的,查询的结果后实际表
中
的不一致(逻辑索引
中
的数据有可能和数据表
中
的不一致,而查询时如果处在索引则首先查询索引) 14、说明:前10条记录 select top 10 * form table1 where 范围 15、说明:选择在每一组b值相同的数据
中
对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b) 16、说明:包括所有在 TableA
中
但不在 TableB和TableC
中
的行并消除所有重复行而派生出
一个
结果表 (select a from tableA ) except (select a from tableB) except (select a from tableC) 17、说明:随机取出10条数据 select top 10 * from tablename order by newid() 18、说明:随机选择记录 select newid() 19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into tablename select * from temp 评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作 3),例如:在
一个
外部表
中
导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的
字段
,怎样删除重复
字段
alter table tablename --添加
一个
自增列 add column_b int identity(1,1) delete from tablename where column_b not in( select max(column_b) from tablename group by column1,column2,...) alter table tablename drop column column_b 20、说明:列出
数据库
里所有的表名 select name from sysobjects where type='U' // U代表用户 21、说明:列出表里的所有的列名 select name from syscolumns where id=object_id('TableName') 22、说明:列示type、vender、pcs
字段
,以type
字段
排列,case可以方便地实现多重选择,类似select
中
的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type vender pcs 电脑 A 1 电脑 A 1 光盘 B 2 光盘 A 2 手机 B 3 手机 C 3 23、说明:初始化表table1 TRUNCATE TABLE table1 24、说明:选择从10到15的记录 select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc 三、技巧 1、1=1,1=2的使用,在
SQL
语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !='' begin set @str
SQL
= 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere end else begin set @str
SQL
= 'select count(*) as Total from [' + @tblName + ']' end 我们可以直接写成 错误!未找到目录项。 set @str
SQL
= 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere 2、收缩
数据库
--重建索引 DBCC REINDEX DBCC INDEXDEFRAG --收缩数据和日志 DBCC SHRINKDB DBCC SHRINKFILE 3、
压缩
数据库
dbcc shrinkdatabase(dbname) 4、转移
数据库
给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复
数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER GO DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK GO ALTER DATABASE [dvbbs] SET MULTI_USER GO 7、日志清除 SET NOCOUNT ON DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT USE tablename -- 要操作的
数据库
名 SELECT @LogicalFileName = 'tablename_log', -- 日志
文件
名 @MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 1 -- 你想设定的日志
文件
的大小(M) Setup / initialize DECLARE @OriginalSize int SELECT @OriginalSize = size FROM sysfiles WHERE name = @LogicalFileName SELECT 'Original Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName CREATE TABLE DummyTrans (DummyColumn char (8000) not null) DECLARE @Counter INT, @StartTime DATETIME, @TruncLog VARCHAR(255) SELECT @StartTime = GETDATE(), @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' DBCC SHRINKFILE (@LogicalFileName, @NewSize) EXEC (@TruncLog) -- Wrap the log if necessary. WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSize BEGIN -- Outer loop. SELECT @Counter = 0 WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) BEGIN -- update INSERT DummyTrans VALUES ('Fill Log') DELETE DummyTrans SELECT @Counter = @Counter + 1 END EXEC (@TruncLog) END SELECT 'Final Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),size) + ' 8K pages or ' + CONVERT(VARCHAR(30),(size*8/1024)) + 'MB' FROM sysfiles WHERE name = @LogicalFileName DROP TABLE DummyTrans SET NOCOUNT OFF 8、说明:更改某个表 exec sp_changeobjectowner 'tablename','dbo' 9、存储更改全部表 CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128) AS DECLARE @Name as NVARCHAR(128) DECLARE @Owner as NVARCHAR(128) DECLARE @OwnerName as NVARCHAR(128) DECLARE curObject CURSOR FOR select 'Name' = name, 'Owner' = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name OPEN curObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGIN if @Owner=@OldOwner begin set @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end -- select @name,@NewOwner,@OldOwner FETCH NEXT FROM curObject INTO @Name, @Owner END close curObject deallocate curObject GO 10、
SQL
SERVER
中
直接循环写入数据 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end 案例: 有如下表,要求就裱
中
所有沒有及格的成績,在每次增長0.1的基礎上,使他們剛好及格: Name score Zhangshan 80 Lishi 59 Wangwu 50 Songquan 69 while((select min(score) from tb_table)<60) begin update tb_table set score =score*1.01 where score60 break else continue end 数据开发-经典 1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多 2.
数据库
加密: select encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 3.取回表
中
字段
: declare @list varchar(1000), @
sql
nvarchar(1000) select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A' set @
sql
='select '+right(@list,len(@list)-1)+' from 表A' exec (@
sql
) 4.查看硬盘分区: EXEC master..xp_fixeddrives 5.比较A,B表是否相等: if (select checksum_agg(binary_checksum(*)) from A) = (select checksum_agg(binary_checksum(*)) from B) print '相等' else print '不相等' 6.杀掉所有的事件探察器进程: DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses WHERE program_name IN('
SQL
profiler',N'
SQL
事件探查器') EXEC sp_msforeach_worker '?' 7.记录搜索: 开头到N条记录 Select Top N * From 表 ------------------------------- N到M条记录(要有主索引ID) Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc ---------------------------------- N到结尾记录 Select Top N * From 表 Order by ID Desc 案例 例如1:一张表有一万多条记录,表的第
一个
字段
RecID 是自增长
字段
, 写
一个
SQL
语句, 找出表的第31到第40个记录。 select top 10 recid from A where recid not in(select top 30 recid from A) 分析:如果这样写会产生某些问题,如果recid在表
中
存在逻辑索引。 select top 10 recid from A where……是从索引
中
查找,而后面的select top 30 recid from A则在数据表
中
查找,这样由于索引
中
的顺序有可能和数据表
中
的不一致,这样就导致查询到的不是本来的欲得到的数据。 解决方案 1, 用order by select top 30 recid from A order by ricid 如果该
字段
不是自增长,就会出现问题 2, 在那个子查询
中
也加条件:select top 30 recid from A where recid>-1 例2:查询表
中
的最后以条记录,并不知道这个表共有多少数据,以及表结构。 set @s = 'select top 1 * from T where pid not in (select top ' + str(@count-1) + ' pid from T)' print @s exec sp_execute
sql
@s 9:获取当前
数据库
中
的所有用户表 select Name from sysobjects where xtype='u' and status>=0 10:获取某
一个
表的所有
字段
select name from syscolumns where id=object_id('表名') select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '表名') 两种方式的效果相同 11:查看与某
一个
表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%' 12:查看当前
数据库
中
所有存储过程 select name as 存储过程名称 from sysobjects where xtype='P' 13:查询用户创建的所有
数据库
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa') 或者 select dbid, name AS DB_NAME from master..sysdatabases where sid 0x01 14:查询某
一个
表的
字段
和数据
类型
select column_name,data_type from information_schema.columns where table_name = '表名' 15:不同服务器
数据库
之间的数据操作 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', '
SQL
OLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.
数据库
名.dbo.表名 --导入示例 select * into 表 from ITSV.
数据库
名.dbo.表名 --
以后
不再使用时删除链接服务器 exec sp_dropserver 'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名) --生成本地表 select * into 表 from openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名) --把本地表导入远程表 insert openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名) select *from 本地表 --更新本地表 update b set b.列A=a.列A from openrowset( '
SQL
OLEDB ', '
sql
服务器名 '; '用户名 '; '密码 ',
数据库
名.dbo.表名)as a inner join 本地表 b on a.column1=b.column1 --openquery用法需要创建
一个
连接 --首先创建
一个
连接创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', '
SQL
OLEDB ', '远程服务器名或ip地址 ' --查询 select * FROM openquery(ITSV, 'SELECT * FROM
数据库
.dbo.表名 ') --把本地表导入远程表 insert openquery(ITSV, 'SELECT * FROM
数据库
.dbo.表名 ') select * from 本地表 --更新本地表 update b set b.列B=a.列B FROM openquery(ITSV, 'SELECT * FROM
数据库
.dbo.表名 ') as a inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset SELECT * FROM opendatasource( '
SQL
OLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta --把本地表导入远程表 insert opendatasource( '
SQL
OLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').
数据库
.dbo.表名 select * from 本地表
SQL
Server基本函数
SQL
Server基本函数 1.字符串函数 长度与分析用 1,datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用
中
以len(expression)取得其长度 3,right(char_expr,int_expr) 返回字符串右边第int_expr个字符,还用left于之相反 4,isnull( check_expression , replacement_value )如果check_expression為空,則返回replacement_value的值,不為空,就返回check_expression字符操作类 5,Sp_addtype 自定義數據類型 例如:EXEC sp_addtype birthday, datetime, 'NULL' 6,set nocount {on|off} 使返回的结果
中
不包含有关受 Transact-
SQL
语句影响的行数的信息。如果存储过程
中
包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-
SQL
语句影响的行数)。 SET NOCOUNT 为 OFF 时,返回计数 常识 在
SQL
查询
中
:from后最多可以跟多少张表或视图:256 在
SQL
语句
中
出现 Order by,查询时,先排序,后取 在
SQL
中
,
一个
字段
的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。
SQL
Server2000同步复制技术实现步骤 一、 预备工作 1.发布服务器,订阅服务器都创建
一个
同名的windows用户,并设置相同的密码,做为发布快照
文件
夹的有效访问用户 --管理工具 --计算机管理 --用户和组 --右键用户 --新建用户 --建立
一个
隶属于administrator组的登陆windows的用户(SynUser) 2.在发布服务器上,新建
一个
共享目录,做为发布的快照
文件
的存放目录,操作: 我的电脑--D:\ 新建
一个
目录,名为: PUB --右键这个新建的目录 --属性--共享 --选择"共享该
文件
夹" --通过"权限"按纽来设置具体的用户权限,保证第一步
中
创建的用户(SynUser) 具有对该
文件
夹的所有权限 --确定 3.设置
SQL
代理(
SQL
SERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置) 开始--程序--管理工具--服务 --右键
SQL
SERVERAGENT --属性--登陆--选择"此账户" --输入或者选择第一步
中
创建的windows登录用户名(SynUser) --"密码"
中
输入该用户的密码 4.设置
SQL
Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置) 企业管理器 --右键
SQL
实例--属性 --安全性--身份验证 --选择"
SQL
Server 和 Windows" --确定 5.在发布服务器和订阅服务器上互相注册 企业管理器 --右键
SQL
Server组 --新建
SQL
Server注册... --下一步--可用的服务器
中
,输入你要注册的远程服务器名 --添加 --下一步--连接使用,选择第二个"
SQL
Server身份验证" --下一步--输入用户名和密码(SynUser) --下一步--选择
SQL
Server组,也可以创建
一个
新组 --下一步--完成 6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施
中
没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称
中
输入的是发布服务器的IP) 开始--程序--Microsoft
SQL
Server--客户端网络实用工具 --别名--添加 --网络库选择"tcp/ip"--服务器别名输入
SQL
服务器名 --连接参数--服务器名称
中
输入
SQL
服务器ip地址 --如果你修改了
SQL
的端口,取消选择"动态决定端口",并输入对应的端口号 二、 正式配置 1、配置发布服务器 打开企业管理器,在发布服务器(B、C、D)上执行以下步骤: (1) 从[工具]下拉菜单的[复制]子菜单
中
选择[配置发布、订阅服务器和分发]出现配置发布和分发向导 (2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他
sql
的服务器(选择自己) (3) [下一步] 设置快照
文件
夹 采用默认\\servername\Pub (4) [下一步] 自定义配置 可以选择:是,让我设置分发
数据库
属性启用发布服务器或设置发布设置 否,使用下列默认设置(推荐) (5) [下一步] 设置分发
数据库
名称和位置 采用默认值 (6) [下一步] 启用发布服务器 选择作为发布的服务器 (7) [下一步] 选择需要发布的
数据库
和发布
类型
(8) [下一步] 选择注册订阅服务器 (9) [下一步] 完成配置 2、创建出版物 发布服务器B、C、D上 (1)从[工具]菜单的[复制]子菜单
中
选择[创建和管理发布]命令 (2)选择要创建出版物的
数据库
,然后单击[创建发布] (3)在[创建发布向导]的提示对话框
中
单击[下一步]系统就会弹出
一个
对话框。对话框上的内容是复制的三个
类型
。我们现在选第
一个
也就是默认的快照发布(其他两个大家可以去看看帮助) (4)单击[下一步]系统要求指定可以订阅该发布的
数据库
服务器
类型
,
SQL
SERVER允许在不同的
数据库
如 orACLE或ACCESS之间进行数据复制。 但是在这里我们选择运行"
SQL
SERVER 2000"的
数据库
服务器 (5)单击[下一步]系统就弹出
一个
定义文章的对话框也就是选择要出版的表 注意: 如果前面选择了事务发布 则再这一步
中
只能选择带有主键的表 (6)选择发布名称和描述 (7)自定义发布属性 向导提供的选择: 是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性 否 根据指定方式创建发布 (建议采用自定义的方式) (8)[下一步] 选择筛选发布的方式 (9)[下一步] 可以选择是否允许匿名订阅 1)如果选择署名订阅,则需要在发布服务器上添加订阅服务器 方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器]
中
添加 否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅 如果仍然需要匿名订阅则用以下解决办法 [企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅 2)如果选择匿名订阅,则配置订阅服务器时不会出现以上提示 (10)[下一步] 设置快照 代理程序调度 (11)[下一步] 完成配置 当完成出版物的创建后创建出版物的
数据库
也就变成了
一个
共享
数据库
有数据 srv1.库名..author有
字段
:id,name,phone, srv2.库名..author有
字段
:id,name,telphone,adress 要求: srv1.库名..author增加记录则srv1.库名..author记录增加 srv1.库名..author的phone
字段
更新,则srv1.库名..author对应
字段
telphone更新 --*/ --大致的处理步骤 --1.在 srv1 上创建连接服务器,以便在 srv1
中
操作 srv2,实现同步 exec sp_addlinkedserver 'srv2','','
SQL
OLEDB','srv2的
sql
实例名或ip' exec sp_addlinkedsrvlogin 'srv2','false',null,'用户名','密码' go --2.在 srv1 和 srv2 这两台电脑
中
,启动 msdtc(分布式事务处理服务),并且设置为自动启动 。我的电脑--控制面板--管理工具--服务--右键 Distributed Transaction Coordinator--属性--启动--并将启动
类型
设置为自动启动 go --然后创建
一个
作业定时调用上面的同步处理存储过程就行了 企业管理器 --管理 --
SQL
Server代理 --右键作业 --新建作业 --"常规"项
中
输入作业名称 --"步骤"项 --新建 --"步骤名"
中
输入步骤名 --"
类型
"
中
选择"Transact-
SQL
脚本(T
SQL
)" --"
数据库
"选择执行命令的
数据库
--"命令"
中
输入要执行的语句: exec p_process --确定 --"调度"项 --新建调度 --"名称"
中
输入调度名称 --"调度
类型
"
中
选择你的作业执行安排 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将
SQL
Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法: 我的电脑--控制面板--管理工具--服务--右键
SQL
SERVERAGENT--属性--启动
类型
--选择"自动启动"--确定. --3.实现同步处理的方法2,定时同步 --在srv1
中
创建如下的同步处理存储过程 create proc p_process as --更新修改过的数据 update b set name=i.name,telphone=i.telphone from srv2.库名.dbo.author b,author i where b.id=i.id and (b.name i.name or b.telphone i.telphone) --插入新增的数据 insert srv2.库名.dbo.author(id,name,telphone) select id,name,telphone from author i where not exists( select * from srv2.库名.dbo.author where id=i.id) --删除已经删除的数据(如果需要的话) delete b from srv2.库名.dbo.author b where not exists( select * from author where id=b.id) go
C#基类库(苏飞版)
通信相关 1.C#HttpHelper,Httpwebrequest,请求时无视编码,无视证书,无视Cookie,网页抓取 主要是实现了HTTP协议的GET|POST请求时的无视编码,无视证书,设置代理,自动获取Cookie的功能。 访问
数据库
相关 1.
Sql
Helper类 使用C#实现对
Sql
数据库
的操作,执行存储过程,
Sql
语句,返回影响行数,返回DateTable,DataSet,DataReader,以及表集等方法。实现多个
数据库
的切换功能。功能强大,希望大家喜欢 2.
一个
操作
Sql
2005
数据库
的类(备份,还原,分离,附加,添加删除用户等操作) 这主要是为了让大家练手的,他使用C#代 码的方法实现了对数据的 备份,还原,分离,附加,添加和删除用户等操作 3.DbHelperMy
SQL
类 数据访问抽象基础类 主要是访问My
sql
数据库
主要实现如下功能 1.得到最大值 2.是否存在 3.是否存在(基于My
Sql
Parameter) 4.执行
SQL
语句,返回影响的记录数 5.执行My
Sql
和Oracle滴混合事务,执行多条
SQL
语句,实现
数据库
事务。 6.执行带
一个
存储过程参数的的
SQL
语句。 7.执行带
一个
存储过程参数的的
SQL
语句。 8.向
数据库
里插入图像格式的
字段
(和上面情况类似的另一种实例) 9.执行一条计算查询结果语句,返回查询结果(object)。 10.执行查询语句,返回My
Sql
DataReader ( 注意:调用该方法后,一定要对My
Sql
DataReader进行Close ) 11.执行查询语句,返回DataSet,执行
SQL
语句,返回影响的记录数,执行多条
SQL
语句,实现
数据库
事务。 执行多条
SQL
语句,实现
数据库
事务。 12.执行多条
SQL
语句,实现
数据库
事务。 13.执行多条
SQL
语句,实现
数据库
事务。 14.执行一条计算查询结果语句,返回查询结果(object)。 15.执行查询语句,返回My
Sql
DataReader ( 注意:调用该方法后,一定要对My
Sql
DataReader进行Close ) 16.执行查询语句,返回DataSet等等。 复制代码 4.DbHelperOleDb类 1.数据访问基础类(基于OleDb)Access
数据库
, 2.得到最大值;是否存在;是否存在(基于OleDbParameter); 3.执行
SQL
语句,返回影响的记录数;执行多条
SQL
语句,实现
数据库
事务; 4.执行带
一个
存储过程参数的的
SQL
语句; 5.向
数据库
里插入图像格式的
字段
(和上面情况类似的另一种实例); 6.执行一条计算查询结果语句,返回查询结果(object); 7.执行查询语句,返回OleDbDataReader; 8.执行查询语句,返回DataSet; 9.执行
SQL
语句,返回影响的记录数; 10.执行多条
SQL
语句,实现
数据库
事务; 11.执行一条计算查询结果语句,返回查询结果(object); 12.执行查询语句,返回OleDbDataReader;执行查询语句,返回DataSet; 复制代码 5.DbHelperOra类 1.数据访问基础类(基于Oracle),主要是用来访问Oracle
数据库
的。 2.得到最大值;是否存在;是否存在(基于OracleParameter ); 3.执行
SQL
语句,返回影响的记录数; 4.执行多条
SQL
语句,实现
数据库
事务; 5.执行带
一个
存储过程参数的的
SQL
语句; 6.向
数据库
里插入图像格式的
字段
(和上面情况类似的另一种实例); 7.执行一条计算查询结果语句,返回查询结果(object); 8.执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对
Sql
DataReader进行Close ); 9.执行查询语句,返回DataSet; 10.执行
SQL
语句,返回影响的记录数; 11.执行多条
SQL
语句,实现
数据库
事务; 12.执行一条计算查询结果语句,返回查询结果(object); 13.执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对
Sql
DataReader进行Close ); 14.执行查询语句,返回DataSet; 15.执行存储过程 返回
Sql
DataReader ( 注意:调用该方法后,一定要对
Sql
DataReader进行Close ); 16.执行存储过程;构建 OracleCommand 对象(用来返回
一个
结果集,而不是
一个
整数值); 17.执行存储过程,返回影响的行数; 18.创建 OracleCommand 对象实例(用来返回
一个
整数值) 复制代码 6.DbHelper
SQL
ite类 [code=csharp] 1.数据访问基础类(基于
SQL
ite),主要是用来访问
SQL
ite
数据库
的。 2.得到最大值;是否存在;是否存在(基于
SQL
iteParameter); 3. 执行
SQL
语句,返回影响的记录数 4.执行多条
SQL
语句,实现
数据库
事务。 5.执行带
一个
存储过程参数的的
SQL
语句。 6.向
数据库
里插入图像格式的
字段
(和上面情况类似的另一种实例) 7.执行一条计算查询结果语句,返回查询结果(object)。 8.执行查询语句,返回
SQL
iteDataReader 9.执行查询语句,返回DataSet 10.执行
SQL
语句,返回影响的记录数 11. 执行多条
SQL
语句,实现
数据库
事务。 12. 执行一条计算查询结果语句,返回查询结果(object)。 13.执行查询语句,返回
SQL
iteDataReader 14.执行查询语句还参数,返回DataSet[/code] 7.DbHelper
SQL
P类 8.DbHelper
SQL
类 9.OracleHelper类 帮助类 1.最新的Functions 类 这里面实现了很多的帮助方法,比如正则验证,加密,解密,MD5加密,字符串的处理等操作。 2.最新的 PageValidate 类 主要是实现了验证,是否为空,是否为数字等。 3.JavascriptHelp 帮助输出简单的JS代码 4.最新的皮肤帮助类 UI_Misc_Helper JavaScript|Jquery相关 1.jQuery.cookie帮助类 访问系统相关 1.C#计算机信息类ComputerInfo 实现了计算机的信息获取功能,计算机名,IP,硬盘信息,网卡信息,操作系统信息等 2.Api_Win32_Mac类工具包
一个
Win32的Api包,实现了大部分的Api操作帮助方法 3.在c#程序
中
放音乐的帮助类 使用C#播放音乐的帮助类,只需要调用方法就可以放音乐了 GDI+相关,图像相关 1.生成缩略图的类
文件
Small
Image
一个
把图片生成缩略图的类,可以设置大小,非常好用,希望大家喜欢哦。 C#基础类库 1.Chart图形 Assistant创建显示图像的标签和
文件
OWCChart统计图的封装类 2.Cookie&Session&Cache缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的帮助类,添加Cookie,删除Cookie,修改Cookie,清理Cookie SessionHelper C#关于Session的操作,获取Session,设置Session,删除Session使用方便,只需要调用方法就可以了 SessionHelper2 C#关于Session的一些高级操作,比如取Session对象,取Session数据等等 3.CSV
文件
转换 CsvHelper CSV
文件
导入DataTable和DataTable导出到Csv
文件
等操作 4.DEncrypt 加密/解密帮助类 DEncrypt C#DEncrypt加密/DEncrypt解密帮助类 ,多种方式,可以设置Key DESEncrypt C#DESEncrypt加密/DESEncrypt解密帮助类 ,多种方式,可以设置Key Encrypt C#Encrypt--Encrypt加密/Encrypt解密/附加有MD5加密,个人感觉很不错的
一个
加密类 HashEncode 哈希加密帮助类,得到随机哈希加密字符串,随机哈希数字加密等 MySecurity MySecurity--Security安全加密/Security Base64/Security
文件
加密,以及一些常用的操作方法 RSACryption RSACryption--RSA加密/RSA解密字符串 RSA加密应用最多是银行接口,这里的方法可以直接使用哦 5.FTP操作类 FTPClient FTPClient--FTP操作帮助类,FTP
上传
,FTP下载,FTP
文件
操作,FTP目录操作 FTPHelper FTPHelper-FTP帮助类,FTP常用操作方法,添加
文件
,删除
文件
等 FTPOperater FTP操作帮助类,方法比较多,比较实用 6.JS操作类 JsHelper JsHelper--Javascript操作帮助类,输出各种JS方法,方便不懂JS的人使用,减少代码量 7.JSON 转化类 ConvertJson List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件
类型
帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类 MimeHeaders mime的Header帮助类 MimeReader mime
读取
帮助类 QuotedPrintableEncoding mimeEncoding帮助类 9.PDF 转化类 PDFOperation PDFOperation--C#PDF
文件
操作帮助类 类主要功能有1.构造函数2.私有
字段
3.设置字体4.设置页面大小 5.实例化文档6.打开文档对象7.关闭打开的文档8.添加段落9.添加图片10.添加链接、点 等功能 10.ResourceManager 操作类 AppMessage app消息格式化类,返加字符串帮助类 ResourceManager C#
一个
操作Resource的帮助类 ResourceManagerWrapper Resources 操作Resources的帮助类,使用Api的方式 Sample.xml 11.XML操作类 XmlHelper 操作Xml文档的帮助类,主要是添加,删除,修改,查询节点的操作和操作后进行
保存
的功能。 XMLProcess 操作Xml文档的帮助类,主要是添加,删除,修改,查询节点的操作的功能。 12.弹出消息类 MessageBox JS弹出信息帮助类 ShowMessageBox 相对于MessageBox更丰富的提示类 13.导出Excel 操作类 DataToExcel 从“Excel导出数据的帮助类 ExcelHelper 导出到
文件
,导出一部分集合,从DataTable
中
操作等 ExportExcel 主要功能如下1.将整个网页导出来Excel 2.将GridView数据导出Excel GridViewExport 主要功能:将整GridView的数据导出到Excel
中
关增加
一个
效果线做美化 14.分词辅助类 SegList C#SegList分词辅助类,帮助类 15.汉字转拼音 EcanConvertToCh C#将汉字转成拼音 PinYin 取汉字拼音的首字母,只要你输入
一个
汉字,或者是多个汉字就会取出相应的道字母,主要是方便查询使用的 复制代码 16.配置
文件
操作类 ConfigHelper 1.根据Key取Value值 2.根据Key修改Value 3.添加新的Key ,Value键值对 4.根据Key删除项 复制代码 17.日历 CNDate 1.传回公历y年m月的总天数 2.根据日期值获得周一的日期 3.获取农历 复制代码 18.
上传
下载 DownLoadHelper 输出硬盘
文件
,提供下载 支持大
文件
、续传、速度限制、资源占用小 复制代码 FileDown 1.参数为虚拟路径 2.获取物理地址 3.普通下载 4.分块下载 5.输出硬盘
文件
,提供下载 支持大
文件
、续传、速度限制、资源占用小 复制代码 FileUp 1.把
上传
的
文件
转换为字节数组 2.流转化为字节数组 2.
上传
文件
根据FileUpload控件
上传
3.把Byte流
上传
到指定目录并
保存
为
文件
复制代码 UpLoadFiles 页面专用类 19.时间操作类 DateFormat 返回每月的第一天和最后一天 复制代码 TimeHelper 1.将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间 2.将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间 3.把秒转换成分钟 4.返回某年某月最后一天 5.返回时间差 6.获得两个日期的间隔 7.格式化日期时间 8.得到随机日期 复制代码 20.视频转换类 VideoConvert 1.获取
文件
的名字 2.获取
文件
扩展名 3.获取
文件
类型
4.视频格式转为Flv 5.生成Flv视频的缩略图 6.转换
文件
并
保存
在指定
文件
夹下 7.转换
文件
并
保存
在指定
文件
夹下 8.运行mencoder的视频解码器转换 复制代码 21.随机数类 BaseRandom 1.产生随机字符 2.产生随机数 3.在一定范围内产生随机数 复制代码 RandomHelper 1.生成
一个
指定范围的随机整数,该随机数范围包括最小值,但不包括最大值 2.生成
一个
0.0到1.0的随机小数 3.对
一个
数组进行随机排序 4. 一:随机生成不重复数字字符串 5.方法二:随机生成字符串(数字和字母混和) 6.从字符串里随机得到,规定个数的字符串. 复制代码 22.条形码 BarCodeToHTML 本类是个条码生成类,大家可根据需要自己设置,非常好用 23.图片
Image
Class 主要功能有:缩略图片,图片水印,文字水印,调整光暗,反色处理,浮雕处理,拉伸处理,左右翻转,上下翻转,
压缩
图片,图片灰度化,转换为黑白图片,获取图片
中
的各帧
Image
Down 主要功能,把图片下载到本地
Image
Upload 图片
上传
并进行缩略图处理 24.网络 NetHelper 25.
文件
操作类 DirFileHelper FileOperateHelper INIFile 26.序列化 Serialize 序列化帮助类,还有例子 SerializeHelper 序列化帮助类,Xml序列化,Json序列化,SoapFormatter序列化,BinaryFormatter序列化 27.
压缩
解
压缩
SharpZip 28.验证码 YZMHelper Captcha 验证码类,
一个
很个性的验证码类 29.页面辅助类 HTMLHelper UploadEventArgs JavaScriptPlus PageHelper 30.邮件 MailHelper MailPoper MailSender SmtpServerHelper 31.邮件2 ConnectCommand ConnectResponse DeleCommand ListCommand ListResponse MailHeaders MailMessageEx NoopCommand PassCommand Pop3Client Pop3Command Pop3Commands Pop3Exception Pop3ListItem Pop3Response Pop3Responses Pop3State QuitCommand RetrCommand RetrResponse RsetCommand Stat StatCommand StatResponse TopCommand UserCommand 32.正则表达式 RegexHelper 33.字符串 StringHelper 34.其它 BasePage BindDataControl ConvertHelper DataCache FormulaExpress GridViewHelper IpHelper MediaHandler PageValidate PicDeal QueryString Rmb StringPlus SysHelper Tools UrlOper Utility ValidateImg WebSitePathHelper
Visual C++程序开发范例宝典(光盘) 第四部分
Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分
上传
,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单
中
添加菜单项 实例002 带图标的程序菜单 实例003 根据表
中
数据动态生成菜单 实例004 浮动的菜单 1.2 弹出菜单应用实例 实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉菜单的工具栏 实例011 可调整按钮位置的工具栏 实例012 浮动工具栏 实例013 根据表
中
数据动态生成工具栏 实例014 具有提示功能的工具栏 1.4 状态栏应用实例 实例015 带进度条的状态栏 实例016 动画效果的状态栏 实例017 滚动字幕的状态栏 1.5 导航界面应用实例 实例018 Outlook导航界面 实例019 树状导航界面 实例020 按钮导航界面 实例021 类QQ导航菜单 1.6 界面窗体应用实例 实例022 背景为渐变色的程序界面 实例023 椭圆形的程序界面 实例024 自绘窗体界面 实例025 类似Windows XP的程序界面 实例026 窗体融合技术 实例027 限制对话框最大时的窗口大小 1.7 多媒体宣传光盘应用实例 实例028 多媒体宣传光盘主界面 实例029 自动运行的多媒体宣传光盘 1.8 多媒体触摸屏程序应用实例 实例030 采购
中
心多媒体触摸屏程序 实例031 为触摸屏程序添加虚拟键盘 1.9 窗体位置应用实例 实例032 不可移动的窗体 实例033 始终在最上面的窗体 实例034 动画显示窗体 实例035 以时钟显示界面窗体 1.10 窗体标题栏应用实例 实例036 闪烁的窗体标题栏 实例037 拖动没有标题栏的窗体 实例038 禁用标题栏上的最大化、最小化或关闭按钮 1.11 窗体形状及应用 实例039 半透明窗体 实例040 创建字型窗体 实例041 百叶窗窗体 实例042 类似Office助手 第2章 控件应用 2.1 按钮控件典型实例 实例043 AVI动画按钮 实例044 GIF动画按钮 实例045 图文按钮 实例046 不规则按钮 2.2 EditBox控件典型实例 实例047 为EditBox设置新的系统菜单 实例048 为EditBox控件添加列表选择框 实例049 多彩边框的编辑框 实例050 改变编辑框文本颜色 2.3 ListBox控件典型实例 实例051 利用ListBox控件实现标签式数据选择 实例052 在ListBox控件间实现数据交换 实例053 列表项的提示条 2.4 ComboBox控件典型实例 实例054 将数据表
中
的
字段
添加到ComboBox控件 实例055 带查询功能的ComboBox控件 实例056 自动调整组合框的宽度 实例057 颜色组合框 实例058 多列显示的组合框 2.5 ListControl控件典型实例 实例059 将
数据库
中
的数据表添加到ListControl控件 实例060 利用ListControl控件浏览数据 实例061 利用ListControl控件制作导航界面 实例062 在列表视图
中
拖动视图项 实例063 利用列标题对列表视图进行数据排序 实例064 具有文本录入功能的ListControl控件 2.6 TreeControl控件典型实例 实例065 多级
数据库
树状结构数据显示 实例066 可动态修改节点的树状结构 实例067 带复选功能的树状结构 实例068 显示磁盘目录 实例069 树型提示框 2.7 RichEdit控件典型实例 实例070 利用RichEdit显示Word文档 实例071 利用RichEdit控件实现文字定位与标识 实例072 利用RichEdit控件显示图文数据 2.8 图形类控件典型实例 实例073 图文数据录入 实例074 带有滚动条的图形控件 2.9 滚动条控件典型实例 实例075 自定义滚动条控件 2.10 控件数组典型实例 实例076 向窗体
中
动态添加控件 实例077 公交线路模拟 第3章 图形技术 3.1 绘制图形 实例078 绘制正弦曲线 实例079 绘制艺术图案 实例080 画图程序 实例081 绘制立体模型 实例082 利用IFS算法绘制自然景物 3.2 图像预览 实例083 图片自动预览程序 实例084 图片批量浏览 实例085 浏览大幅BMP图片 实例086 放大和缩小图片 实例087 可随鼠标移动的图形 实例088 随图像大小变换的图像浏览器 3.3 图片效果 实例089 图片马赛克效果 实例090 图片百叶窗效果 实例091 电影胶片特效 实例092 翻
C#
110,500
社区成员
642,566
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章