C#连接数据库等相关语法.docx

上传人:b****5 文档编号:5901595 上传时间:2023-01-02 格式:DOCX 页数:25 大小:34.41KB
下载 相关 举报
C#连接数据库等相关语法.docx_第1页
第1页 / 共25页
C#连接数据库等相关语法.docx_第2页
第2页 / 共25页
C#连接数据库等相关语法.docx_第3页
第3页 / 共25页
C#连接数据库等相关语法.docx_第4页
第4页 / 共25页
C#连接数据库等相关语法.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C#连接数据库等相关语法.docx

《C#连接数据库等相关语法.docx》由会员分享,可在线阅读,更多相关《C#连接数据库等相关语法.docx(25页珍藏版)》请在冰豆网上搜索。

C#连接数据库等相关语法.docx

C#连接数据库等相关语法

2006年2月22日#

表名作为参数传递的存储过程写法

SETQUOTED_IDENTIFIERON

GO

SETANSI_NULLSON

GO

 

--=================================================================

--描述:

~~~~~~~~~~~~~~~~~~~~~~~~~~~

--作者:

鲁湘

--@tableName  该模板对应的数据库表

--@RecordID   业务处理需要寻找表中记录的ID号码

--=================================================================

ALTER   PROCEDUREWF_QingJia

  (@tableNamevarchar(50),@recordIDvarchar(50))

AS

--获取表中的业务数据值

DECLARE@moneyvarchar(100), --业务逻辑需要的值

 @sqlsnvarchar(4000) --保存组合SQL语句

SET@sqls='SELECT@a=MoneyFROM'+@tableName+'WHEREID='+@recordID

EXECUTEsp_executesql@sqls,N'@avarchar(50)output',@moneyoutput

--根据值进行相应的业务处理

print@money

UPDATEWF_FormBillSET[Money]='真的被处理了'WHERE[ID]=@recordID

 

GO

SETQUOTED_IDENTIFIEROFF

GO

SETANSI_NULLSON

GO

posted@2006-11-1616:

49Ben阅读(409)|评论(0)| 编辑 收藏

[转]经典SQL语句--收藏

经典SQL语句--收藏

[个人收藏]经典SQL语句.值得收藏

精典的SQL语句,推荐收藏

在网上经常转,常常看到有些人为了求得某些SQL语句而焦头烂额,现在我特别把自己收藏的一些比较精典的SQL拿出来和大家分享一下

1.行列转换--普通

假设有张学生成绩表(CJ)如下

Name Subject Result

张三 语文  80

张三 数学  90

张三 物理  85

李四 语文  85

李四 数学  92

李四 物理  82

想变成 

姓名 语文 数学 物理

张三 80 90 85

李四 85 92 82

declare@sqlvarchar(4000)

set@sql=''selectName''

select@sql=@sql+'',sum(caseSubjectwhen''''''+Subject+''''''thenResultend)[''+Subject+'']''

from(selectdistinctSubjectfromCJ)asa

select@sql=@sql+''fromtestgroupbyname''

exec(@sql)

2.行列转换--合并

有表A,

idpid

1 1

1 2

1 3

2 1

2 2

3 1

如何化成表B:

idpid

11,2,3

21,2

31

创建一个合并的函数

createfunctionfmerg(@idint)

returnsvarchar(8000)

as

begin

declare@strvarchar(8000)

set@str=''''

select@str=@str+'',''+cast(pidasvarchar)from表Awhereid=@idset@str=right(@str,len(@str)-1)

return(@str)

End

go

--调用自定义函数得到结果

selectdistinctid,dbo.fmerg(id)from表A

3.如何取得一个数据表的所有列名

方法如下:

先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。

SQL语句如下:

declare@objidint,@objnamechar(40)

set@objname=''tablename''

select@objid=idfromsysobjectswhereid=object_id(@objname)

select''Column_name''=namefromsyscolumnswhereid=@objidorderbycolid

是不是太简单了?

呵呵不过经常用阿.

4.通过SQL语句来更改用户的密码

修改别人的,需要sysadminrole 

EXECsp_passwordNULL,''newpassword'',''User''

如果帐号为SA执行EXECsp_passwordNULL,''newpassword'',sa

5.怎么判断出一个表的哪些字段不允许为空?

selectCOLUMN_NAMEfromINFORMATION_SCHEMA.COLUMNSwhereIS_NULLABLE=''NO''andTABLE_NAME=tablename

6.如何在数据库里找到含有相同字段的表?

a.查已知列名的情况

SELECTb.nameasTableName,a.nameascolumnname

Fromsyscolumns aINNERJOIN sysobjectsb 

ONa.id=b.id 

ANDb.type=''U'' 

ANDa.name=''你的字段名字''

b.未知列名查所有在不同表出现过的列名

Selecto.nameAstablename,s1.nameAscolumnname

Fromsyscolumnss1,sysobjectso

Wheres1.id=o.id

 Ando.type=''U''

 AndExists(

  Select1Fromsyscolumnss2 

  Wheres1.name=s2.name 

  Ands1.id<>s2.id

  )

7.查询第xxx行数据

假设id是主键:

select*

from(selecttopxxx*fromyourtable)aa

wherenotexists(select1from(selecttopxxx-1*fromyourtable)bbwhereaa.id=bb.id)

如果使用游标也是可以的

fetchabsolute[number]from[cursor_name]

行数为绝对行数

8.SQLServer日期计算

a.一个月的第一天

SELECTDATEADD(mm,DATEDIFF(mm,0,getdate()),0)

b.本周的星期一

SELECTDATEADD(wk,DATEDIFF(wk,0,getdate()),0)

c.一年的第一天

SELECTDATEADD(yy,DATEDIFF(yy,0,getdate()),0)

d.季度的第一天

SELECTDATEADD(qq,DATEDIFF(qq,0,getdate()),0)

e.上个月的最后一天

SELECTdateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

f.去年的最后一天

SELECTdateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

g.本月的最后一天

SELECTdateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))

h.本月的第一个星期一

selectDATEADD(wk,DATEDIFF(wk,0,                   

          dateadd(dd,6-datepart(day,getdate()),getdate())  

                                ),0)  

i.本年的最后一天

SELECTdateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))。

-----------------------------------------------------------------------

1.按姓氏笔画排序:

Select*FromTableNameOrderByCustomerNameCollateChinese_PRC_Stroke_ci_as

2.数据库加密:

selectencrypt(''原始密码'')

selectpwdencrypt(''原始密码'')

selectpwdcompare(''原始密码'',''加密后密码'')=1--相同;否则不相同encrypt(''原始密码'')

selectpwdencrypt(''原始密码'')

selectpwdcompare(''原始密码'',''加密后密码'')=1--相同;否则不相同

3.取回表中字段:

declare@listvarchar(1000),@sqlnvarchar(1000)

select@list=@list+'',''+b.namefromsysobjectsa,syscolumnsbwherea.id=b.idanda.name=''表A''

set@sql=''select''+right(@list,len(@list)-1)+''from表A''

exec(@sql)

4.查看硬盘分区:

EXECmaster..xp_fixeddrives

5.比较A,B表是否相等:

if(selectchecksum_agg(binary_checksum(*))fromA)

 =

 (selectchecksum_agg(binary_checksum(*))fromB)

print''相等''

else

print''不相等''

6.杀掉所有的事件探察器进程:

DECLAREhcforeachCURSORGLOBALFORSELECT''kill''+RTRIM(spid)FROMmaster.dbo.sysprocesses

WHEREprogram_nameIN(''SQLprofiler'',N''SQL事件探查器'')

EXECsp_msforeach_worker''?

''

7.记录搜索:

开头到N条记录

SelectTopN*From表

-------------------------------

N到M条记录(要有主索引ID)

SelectTopM-N*From表WhereIDin(SelectTopMIDFrom表)OrderbyIDDesc

----------------------------------

N到结尾记录

SelectTopN*From表OrderbyIDDesc

8.如何修改数据库的名称:

sp_renamedb''old_name'',''new_name''

9:

获取当前数据库中的所有用户表

selectNamefromsysobjectswherextype=''u''andstatus>=0

10:

获取某一个表的所有字段

selectnamefromsyscolumnswhereid=object_id(''表名'')

11:

查看与某一个表相关的视图、存储过程、函数

selecta.*fromsysobjectsa,syscommentsbwherea.id=b.idandb.textlike''%表名%''

12:

查看当前数据库中所有存储过程

selectnameas存储过程名称fromsysobjectswherextype=''P''

13:

查询用户创建的所有数据库

select*frommaster..sysdatabasesDwheresidnotin(selectsidfrommaster..sysloginswherename=''sa'')

或者

selectdbid,nameASDB_NAMEfrommaster..sysdatabaseswheresid<>0x01

14:

查询某一个表的字段和数据类型

selectcolumn_name,data_typefrominformation_schema.columns

wheretable_name=''表名''

[n].[标题]:

Select*FromTableNameOrderByCustomerName

[n].[标题]:

Select*FromTableNameOrderByCustomerName

posted@2006-04-0615:

01Ben阅读(578)|评论(0)| 编辑 收藏

vs2003和vs2005下的发送SMTP邮件(downmoon原创)选择自downmoon的Blog

vs2003和vs2005下的发送SMTP邮件(downmoon原创)

一、vs2003

引用System.Web.Mail命名空间

 privatevoidSenMail2003()

   {

       MailMessagemailObj=newMailMessage();

       mailObj.To=this.txtTo.Text;

       mailObj.From=this.txtFrom.Text;

       

       mailObj.Subject="精采笑话";

       mailObj.Body="猪!

你已中毒!

哈哈";

       

       mailObj.BodyFormat=MailFormat.Html;

       mailObj.BodyEncoding=MailFormat.Base64;

       mailObj.Priority=MailPriority.High;

       mailObj.Attachments.Add(newMailAttachment("c:

\\swf\\000.bmp"));

       SmtpMail.Send(mailObj);

       Response.Write("发送邮件成功!

");

   }

二、vs2005

引用System.Net.Mail命名空间,安全性得到了增强

 publicstaticvoidSendWebMailAndAttach(stringserver)

   {

        stringfile="e:

\\inetpub\\wwwroot\\Test2005All\\TestXML\\testXML.xml";

        System.Net.Mail.MailMessagemessage=newSystem.Net.Mail.MailMessage("Test@","Test@","textmessageforyou.","TestTitle");

        System.Net.Mail.Attachmentdata=newSystem.Net.Mail.Attachment(file,System.Net.Mime.MediaTypeNames.Application.Octet);

        System.Net.Mime.ContentDispositiondisposition=data.ContentDisposition;

        disposition.CreationDate=System.IO.File.GetCreationTime(file);

        disposition.ModificationDate=System.IO.File.GetLastWriteTime(file);

        disposition.ReadDate=System.IO.File.GetLastAccessTime(file);

        message.Attachments.Add(data);

       System.Net.Mail.SmtpClientclient=newSystem.Net.Mail.SmtpClient(server);

       client.Credentials=newNetworkCredential("用户名","密码");

       client.Send(message);

       data.Dispose();

   }

引用示例

SendWebMailAndAttach("");

posted@2006-04-0614:

18Ben阅读(261)|评论(0)| 编辑 收藏

SQL中CONVERT转化函数,Concat,COALESCE的用法

SQL中CONVERT转化函数的用法

CONVERT的使用方法:

////////////////////////////////////////////////////////////////////////////////////////

格式:

CONVERT(data_type,expression[,style])

说明:

此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)

相互转换的时候才用到.

例子:

SELECTCONVERT(varchar(30),getdate(),101)now

结果为

now

---------------------------------------

09/15/2001

/////////////////////////////////////////////////////////////////////////////////////

style数字在转换时间时的含义如下

-------------------------------------------------------------------------------------------------

Style(2位表示年份)|Style(4位表示年份)|输入输出格式

-------------------------------------------------------------------------------------------------

-|0or100|monddyyyyhh:

miAM(或PM)

-------------------------------------------------------------------------------------------------

1|101|mm/dd/yy

-------------------------------------------------------------------------------------------------

2|102|yy-mm-dd

-------------------------------------------------------------------------------------------------

3|103|dd/mm/yy

-------------------------------------------------------------------------------------------------

4|104|dd-mm-yy

-------------------------------------------------------------------------------------------------

5|105|dd-mm-yy

-------------------------------------------------------------------------------------------------

6|106|ddmonyy

-------------------------------------------------------------------------------------------------

7|107|mondd,yy

-------------------------------------------------------------------------------------------------

8|108|hh:

mm:

ss

---------------------------------------------------------------------------------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1