成都网站建设设计

将想法与焦点和您一起共享

sqlserver的方法,Sqlserver函数

C#中使用SQLServer的方法

1、添加引用

创新互联公司主要从事网站建设、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务乡宁,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

using System.Data.SqlClient;

2、建立连接调用

SqlConnection myConnection = new SqlConnection("数据库连接字符串");

//数据库连接字符串通常是Data Source=localhost;Initial Catalog=数据库名;User ID=用户名;Password=密码

SqlCommand myCommand = new SqlCommand();

myCommand.CommandText = string.Format("select count(*) from {0} where columName={1}",表明,列值);//构造SQL查询语句     String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。        myCommand.Connection = myConnection;

try

{

myCommand.Connection.Open();

int count = (int)myCommand.ExecuteScalar();

if (count  0)   

{

//count大于0表示有,调用自己写的一个方法来更新

UpdateData();

}

else

{

小于0表示没有,调用这个方法来插入            

InsertData();

}

}

catch (Exception ex)

{

Response.Write(ex.ToString());

}

//UpdateData方法    

public void UpdateData()

{

SqlConnection myConnection = new SqlConnection("数据库连接字符串");

SqlCommand myCommand = new SqlCommand();

myCommand.CommandText = "用来更新的SQL语句";

myCommand.Connection = myConnection;

try

{

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

}

catch (Exception ex)

{

Response.Write(ex.ToString());

}

}

//InsertData方法 

public void InsertData()

{

SqlConnection myConnection = new SqlConnection("数据库连接字符串");

SqlCommand myCommand = new SqlCommand();

myCommand.CommandText = "用来插入的SQL语句";

myCommand.Connection = myConnection;

try

{

myCommand.Connection.Open();

myCommand.ExecuteNonQuery();

}

catch (Exception ex)

{

Response.Write(ex.ToString());

}

}

-----这些都是基础的写法,可以将其封装在一个工具类中,方便调用。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

namespace DBUtility

{

public class SqlHelper

{

//通过配置文件(app.config:xml)读取连接字符串

public static string connectionString = ConfigurationManager .ConnectionStrings["ConnectionString"].ConnectionString;

//字段,通过连接字符串获取连接对象

private SqlConnection con = new SqlConnection(connectionString);

//属性,判断连接对象的状态并打开连接对象

public SqlConnection Con

{

get {

switch (con.State)

{

case ConnectionState.Broken:

con.Close(); //先正常关闭,释放资源

con.Open();

break;

case ConnectionState.Closed:

con.Open();

break;

case ConnectionState.Connecting:

break;

case ConnectionState.Executing:

break;

case ConnectionState.Fetching:

break;

case ConnectionState.Open:

break;

default:

break;

}

return con; }

set { con = value; }

}

//执行存储过程或者SQL语句并返回数据集DataSet

public DataSet GetDataSet(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds);

return ds;

}

//执行存储过程或者SQL语句并返回SqlDatareader

public SqlDataReader GetDataReader(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

return dr;

}

//执行存储过程或者SQL语句并返回首行首列(新增方法的主键)

public object ExecuteScalar(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

return cmd.ExecuteScalar();

}

//执行存储过程或者SQL语句并返回受影响行数

public int ExecuteNonQuery(string strSQL, CommandType cmdType, params SqlParameter[] values)

{

SqlCommand cmd = PrepareCommand(strSQL, cmdType, values);

return cmd.ExecuteNonQuery();

}

//内部方法,实例化命令对象并配置相关属性

private SqlCommand PrepareCommand(string strSQL, CommandType cmdType,params SqlParameter[] values)

{

SqlCommand cmd = new SqlCommand();

cmd.Connection = Con;

cmd.CommandText = strSQL;

cmd.CommandType = cmdType;

cmd.CommandTimeout = 60;

cmd.Parameters.AddRange(values);

return cmd;

}

}

}

SqlServer安装方法请教

1.为SQL Server 7.0创建一个帐号: 以域管理员(Domain Administrator)登录,启动域用户管理器,选择菜单"用户"中的"添加用户"。 )输入用户信息,如用户名称为SQLService,并设用户不得变更密码且密码永久正确(其它两项不要选)。 将此用户(域\SQL服务)加入到管理员组中,如果要安装SQL Server的计算机不是域控制器,先以本地管理员登录本机,设该用户属于Admins组。 设置该用户在安装SQL Server的计算机上拥有"以服务方式登录"的用户权力。 2.安装SQL Server软件: 放入SQLServer 7.0光盘,或启动光盘中的autorun.exe。 如果您的Windows NT 4.0已安装Service Pack4和Internet Explorer 4.01 Service Pack 1,可以直接用鼠标选择"Install SQL Server 7.0 Components(安装SQL Server 7.0组件)" 出现「Install SQL Server 7.0 Components」 选项,选择「Database Server- Standard Edition」。 出现「Select Install Method」对话框,选择「Local Install -Install to the Local Machine」,单击「Next」按钮。 出现「Welcome」对话框,单击「Next」按钮。 出现「Software License Agreement」对话框,单击「Yes」按钮。 出现「User Information」对话框,请输入您的姓名和公司名称,然后单击「Next」按钮。 出现「Setup Type」对话框,共有三种安装类型,典型(Typical)、最小化(Minimum)和自定义(Customer),请选择「Custom」,此外SQLServer 7.0预设的程序文件及数据文件路径为\msql7,可单击「Browse…」按钮修改。单击「Next」按钮继续安装。 出现「Select Components」对话框,选择您要安装的项目后,单击「Next」按钮。 出现「Character Set/Sort Order/Unicode Collation」对话框,使用默认值设置,单击「Next」按钮。 附注:字符集为中文简体,排序次序为字典次序,大小写敏感(NT除外),如果此SQL Server7.0将来要将SQL Server 6.X数据库转换为SQL 7.0数据库,则字符集和排序次序的设置要与SQL Server 6.X数据库所在的SQL Server 6.x设置相同。 出现「Network Libraries」对话框,请依默认值设定选择Named piped、TCP/IP Sockets以及Multi-Protocol三项后,单击「Next」按钮。 出现「Services Accounts」对话框,选择「Use the same account for each service. Auto start SQL Server Service」即SQL Server及SQL Server Agent使用同一帐号,并在「Service Settings」中,选择「User a Domain User Account」,填入Username、Password及Domain(如先前设定的SQLService),单击「Next」按钮。 出现「Start Copying Files」对话框,表示安装程序已收集所需信息,单击「Next」按钮。 出现「选择使用权模式」对话框,设置「每一服务器(Per Server)」或「每一座位(Per Seat)」,再单击「继续」按钮,在「每一服务器」使用权或「每一基座」使用权的画面点选「我同意」,再单击「确定」按钮。 安装程序会将文件复制到计算机。 安装完全后请重启计算机。 请给出在中文在中文Windows 98中安装 SQL Server 7.0的示例? 放入SQL Server 7.0光盘,或启动光盘中的autorun.exe。 用鼠标单击「Install SQL Server 7.0 Components」 出现「Install SQL Server 7.0 Components」 选项,选择「Database Server- Desktop Edition」。 出现「Welcome」对话框,单击「Next」按钮。 出现「Software License Agreement」对话框,单击「Yes」按钮。 出现「User Information」对话框,请输入您的姓名和公司名称,然后单击「Next」按钮。 出现「Setup Type」对话框,共有三种安装类型,Typical、Minimum及Customer,请选择「Custom」,此外SQLServer 7.0预设的程序文件及数据文件均在\msql7,您可单击「Browse…」按钮进行修改。单击「Next」按钮继续安装。 出现「Select Components」对话框,选择您要安装的项目后,单击「Next」按钮。 出现「Character Set/Sort Order/Unicode Collation」对话框,使用默认值设置,单击「Next」按钮。 附注:Character Set:中文简体,排序次序(字典次序,大小写敏感(NT除外))。 出现「Network Libraries」对话框,使用默认设置,选择TCP/IP Sockets以及Multi-Protocol三项后,单击「Next」按钮,至此安装程序已收集安装信息,单击「Next」按钮,安装程序会将文件复制到计算机。 安装完全后请重启计算机。 请给出安装SQL Server 7.0客户端工具的示例? 安装SQL Server 7.0客户端工具与安装SQL Server 7.0的安装过程相同,可以参考前面的"在中文Windows NT Server 4.0中安装SQL Server 7.0的范例",选择用户自定义安装方式,在步骤9「Select Components」对话框中取消Server Components选项。 再补充一个常见的问题 安装过程中出现“以前进行的程序创建了挂起的文件操作,运行安装程序前,必须重新启动”,请按照下面步骤解决: a、重启机器,再进行安装,如果发现还有该错误,请按下面步骤 b、在开始-运行中输入regedit c、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置 d、选择文件-倒出,保存 e、在右边窗口右击PendingFileRenameOperations,选择删除,然后确认 f、重启安装,问题解决 如果还有同样问题,请检查其它注册表中是否有该值存在,如有请删掉 2 ,当用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。 ? 打开企业管理器--安全性--用户--找到SA用户...右键--属性--将密码处的*****全删除--再按回车--弹出密码确认框--不于输入任何消息. 。

SQLSERVER数据库中批量导入数据的几种方法

我们通过SQL脚本来插入数据,常见如下四种方式。

方式一:一条一条插入,性能最差,不建议使用。

INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160);INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏2段',260);

......

方式二:insert bulk

语法如下:

BULK INSERT [ [ 'database_name'.][ 'owner' ].]{ 'table_name' FROM 'data_file' }

WITH  (

[ BATCHSIZE [ = batch_size ] ],

[ CHECK_CONSTRAINTS ],

[ CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ] ],

[ DATAFILETYPE [ = 'char' | 'native'| 'widechar' | 'widenative' ] ],

[ FIELDTERMINATOR [ = 'field_terminator' ] ],

[ FIRSTROW [ = first_row ] ],

[ FIRE_TRIGGERS ],

[ FORMATFILE = 'format_file_path' ],

[ KEEPIDENTITY ],

[ KEEPNULLS ],

[ KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ],

[ LASTROW [ = last_row ] ],

[ MAXERRORS [ = max_errors ] ],

[ ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ],

[ ROWS_PER_BATCH [ = rows_per_batch ] ],

[ ROWTERMINATOR [ = 'row_terminator' ] ],

[ TABLOCK ],

)  

相关参数说明:

BULK INSERT

[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]

FROM 'data_file'

[ WITH

(

[ [ , ] BATCHSIZE = batch_size ]    --BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量

[ [ , ] CHECK_CONSTRAINTS ]     --指定在大容量导入操作期间,必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项,则所有 CHECK 和 FOREIGN KEY 约束都将被忽略,并且在此操作之后表的约束将标记为不可信。

[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]  --指定该数据文件中数据的代码页

[ [ , ] DATAFILETYPE =

{ 'char' | 'native'| 'widechar' | 'widenative' } ]  --指定 BULK INSERT 使用指定的数据文件类型值执行导入操作。

[ [ , ] FIELDTERMINATOR = 'field_terminator' ]  --标识分隔内容的符号

[ [ , ] FIRSTROW = first_row ]    --指定要加载的第一行的行号。默认值是指定数据文件中的第一行

[ [ , ] FIRE_TRIGGERS ]     --是否启动触发器

[ [ , ] FORMATFILE = 'format_file_path' ]

[ [ , ] KEEPIDENTITY ]   --指定导入数据文件中的标识值用于标识列

[ [ , ] KEEPNULLS ]    --指定在大容量导入操作期间空列应保留一个空值,而不插入用于列的任何默认值

[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]

[ [ , ] LASTROW = last_row ]   --指定要加载的最后一行的行号

[ [ , ] MAXERRORS = max_errors ]   --指定允许在数据中出现的最多语法错误数,超过该数量后将取消大容量导入操作。

[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]  --指定数据文件中的数据如何排序

[ [ , ] ROWS_PER_BATCH = rows_per_batch ]

[ [ , ] ROWTERMINATOR = 'row_terminator' ]   --标识分隔行的符号

[ [ , ] TABLOCK ]     --指定为大容量导入操作持续时间获取一个表级锁

[ [ , ] ERRORFILE = 'file_name' ]   --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。

)]  

方式三:INSERT INTO xx select...

INSERT INTO Product(Id,Name,Price) SELECT NEWID(),'牛栏1段',160

UNION ALL

SELECT NEWID(),'牛栏2段',180 UNION ALL......

方式四:拼接SQL

INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160)

,(newid(),'牛栏2段',260)

......

sqlserver导数据库有几种方法

1. SQL Server导入导出向导,这种方式是最方便的.

导入向导,微软提供了多种数据源驱动,包括SQL Server Native Cliant, OLE DB For Oracle,Flat File Source,Access,Excel,XML等,基本上可以满足系统开发的需求.

同样导出向导也有同样多的目的源驱动,可以把数据导入到不同的目的源.

对数据库管理人员来说这种方式简单容易操作,导入时SQL Server也会帮你建立相同结构的Table.

2. 用.NET的代码实现(比如有一个txt或是excel的档案,到读取到DB中)

2.1 最为常见的就是循环读取txt的内容,然后一条一条的塞入到Table中.这里不再赘述.

2.2 集合整体读取,使用OLEDB驱动.

代码如下:

代码

string strOLEDBConnect = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1\;Extended Properties='text;HDR=Yes;FMT=Delimited'";

OleDbConnection conn = new OleDbConnection(strOLEDBConnect);

conn.Open();

SQLstmt = "select * from 1.txt";//读取.txt中的数据

DataTable dt=new DataTable();

OleDbDataAdapter da = new OleDbDataAdapter(SQLstmt, conn);

da.Fill(dt);//在DataSet的指定范围中添加或刷新行以匹配使用DataSet、DataTable 和IDataReader 名称的数据源中的行。

if(dt.Rows.Count0)

foreach(DataRow dr in dt.Rows)

{

SQLstmt = "insert into MyTable values('" + dr..."

3.BCP,可以用作大容量的数据导入导出,也可以配合来使用.

语法:

代码

bcp {[[database_name.][schema].]{table_name | view_name} | "query"}

{in | out | queryout | format} data_file

[-mmax_errors] [-fformat_file] [-x] [-eerr_file]

[-Ffirst_row] [-Llast_row] [-bbatch_size]

[-ddatabase_name] [-n] [-c] [-N] [-w] [-V (70 | 80 | 90 )]

[-q] [-C { ACP | OEM | RAW | code_page } ] [-tfield_term]

[-rrow_term] [-iinput_file] [-ooutput_file] [-apacket_size]

[-S [server_name[\instance_name]]] [-Ulogin_id] [-Ppassword]

[-T] [-v] [-R] [-k] [-E] [-h"hint [,...n]"]

请注意数据导入导出的方向参数:in,out,queryout

如:

如:

4.BULK INSERT. T-SQL的命令,允许直接导入数据

语法:

BULK INSERT

[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ]

FROM 'data_file'

[ WITH

(

[ [ , ] BATCHSIZE =batch_size ]

[ [ , ] CHECK_CONSTRAINTS ]

[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]

[ [ , ] DATAFILETYPE =

{ 'char' | 'native'| 'widechar' | 'widenative' } ]

[ [ , ] FIELDTERMINATOR = 'field_terminator' ]

[ [ , ] FIRSTROW = first_row ]

[ [ , ] FIRE_TRIGGERS ]

[ [ , ] FORMATFILE ='format_file_path' ]

[ [ , ] KEEPIDENTITY ]

[ [ , ] KEEPNULLS ]

[ [ , ] KILOBYTES_PER_BATCH =kilobytes_per_batch ]

[ [ , ] LASTROW =last_row ]

[ [ , ] MAXERRORS =max_errors ]

[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]

[ [ , ] ROWS_PER_BATCH =rows_per_batch ]

[ [ , ] ROWTERMINATOR ='row_terminator' ]

[ [ , ] TABLOCK ]

[ [ , ] ERRORFILE ='file_name' ]

)]

重要参数:

FIELDTERMINATOR,字段分隔符

FIRSTROW:第一个数据行

ROWTERMINATOR:行终结符

如:

BULK INSERT dbo.ImportTest

FROM 'C:\ImportData.txt'

WITH ( FIELDTERMINATOR =',', FIRSTROW = 2 )

5. OPENROWSET也是T-SQL的命令,包含有DB连接的信息和其它导入方法不同的是,OPENROWSET可以作为一个目标表参与INSERT,UPDATE,DELETE操作.

语法:

OPENROWSET

( { 'provider_name', { 'datasource';'user_id';'password'

| 'provider_string' }

, { [ catalog. ] [ schema. ] object

| 'query'

}

| BULK 'data_file',

{ FORMATFILE ='format_file_path' [ bulk_options ]

| SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB }

} )bulk_options ::=

[ , CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]

[ , ERRORFILE ='file_name' ]

[ , FIRSTROW = first_row ]

[ , LASTROW = last_row ]

[ , MAXERRORS = maximum_errors ]

[ , ROWS_PER_BATCH =rows_per_batch ]

如:

INSERT INTO dbo.ImportTest

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'Excel 8.0;Database=C:\ImportData.xls', 'SELECT * FROM [Sheet1$]') WHERE A1 IS NOT NULL

6.OPENDATASOURCE

语法:

OPENDATASOURCE ( provider_name,init_string )

如:

INSERT INTO dbo.ImportTest

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]

7.OPENQUERY.是在linked server的基础上执行的查询.所以执行之前必须先建立好link server.OPENQUERY的结果集可以作为一个table参与DML的操作.

语法:

OPENQUERY (linked_server ,'query')

如:

EXEC sp_addlinkedserver 'ImportData',

'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0',

'C:\ImportData.xls',

NULL,

'Excel 8.0'

GO

INSERT INTO dbo.ImportTest

SELECT *

FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')

sqlserver数据库几种备份方法

数据库备份可以分为4个备份类型。

l 全备份:创建备份完成时数据库内存在的数据的副本。

l 差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。

l 日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。

l 文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。

不同的备份类型适用的范围也不同。全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。

每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。

经常使用备份方式组合有以下几种:

l 全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。

l 全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。

l 文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。


本文标题:sqlserver的方法,Sqlserver函数
网站网址:http://chengdu.cdxwcx.cn/article/dssdjge.html