当前位置:文档之家› c#下各种数据库操作的封装!

c#下各种数据库操作的封装!

c#下各种数据库操作的封装!
c#下各种数据库操作的封装!

c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(一)收藏

首先定义数据库操作的标准接口IDBAccess,定义接口的基本功能;

通过基本的接口设置,完成数据访问的统一抽象。

public interface IDBAccess

{

void Init(string strServer, string strDataBase, string strUser, string str Pwd);

void Open();

void Close();

bool TestConn();

int RunNoQuery(string strCmd);

DataTable RunQuery(string strCmd);

DBType DBType { get;}

int GetFiledMax(string strTable, string strField);

DataTable Tables { get; }

DataTable GetColumns();

DataTable GetColumns(string strTable);

}

c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(二)收藏

使用静态工厂模式,通过传入枚举型参数,动态创建访问实例

实现模式上采用基本实现接口,派生类继承基类的虚函数,从而实现代码的耦合较低,有很好的扩展性。

public enum DBType

{

Access,

SQL,

DB2,

Oracle,

MySQL

}

public static class DBAccessFactory

{

public static IDBAccess Create(DBType type)

{

IDBAccess IRet = null;

switch (type)

{

case DBType.Access:

IRet = new Access(type);

break;

case DBType.SQL:

IRet = new SQL(type);

break;

default:

break;

}

return IRet;

}

private abstract class DBAccess : IDBAccess

{

protected DbConnection m_oConn = null;

protected const string CON_strServer = "Server";

protected const string CON_strDataBase = "Data Source";

protected const string CON_strUser = "UID";

protected const string CON_strPwd = "PWD";

protected const string CON_strConnTimeOut = "Connect Timeou t = 2";

private DBType m_eDBType = DBType.Access;

protected DBAccess(DBType type)

{

this.m_eDBType = type;

}

public DBType DBType

{

get { return this.m_eDBType; }

}

public void Init(string strServer, string strDataBase, string strUse r, string strPwd)

{

this.InitConn(strServer, strDataBase, strUser, strPwd);

}

public void Open()

{

if (this.m_oConn != null)

{

this.m_oConn.Open();

}

public int RunNoQuery(string strCmd)

{

int iRet = 0;

try

{

DbCommand oCmd = this.GetCmd(strCmd);

if (oCmd != null)

{

iRet = oCmd.ExecuteNonQuery();

}

}

catch (Exception ex)

{

throw (new Exception(ex.Message));

}

return iRet;

}

public int GetFiledMax(string strTable, string strField)

{

int iRet = -1;

DataTable dt = this.RunQuery("Select Max(" + strField + ") Fro m " + strTable);

if (dt != null && dt.Rows.Count == 1)

{

iRet = dt.Rows[0][0] is DBNull ? 0 : Convert.ToInt32(dt.Rows [0][0]);

return iRet;

}

public DataTable RunQuery(string strCmd)

{

DataTable dt = new DataTable();

DbDataAdapter adp = this.DbAdp;

adp.SelectCommand = this.GetCmd(strCmd);

adp.Fill(dt);

return dt;

}

public void Close()

{

if (this.m_oConn != null && this.m_oConn.State == System.Data. ConnectionState.Open)

{

this.m_oConn.Close();

}

}

public bool TestConn()

{

bool bRet = true;

try

{

if (this.m_oConn.State != System.Data.ConnectionState.Open)

{

this.m_oConn.Open();

bRet = this.m_oConn.State == System.Data.ConnectionState. Open;

}

catch

{

bRet = false;

}

this.Close();

return bRet;

}

public abstract DataTable Tables { get; }

public abstract DataTable GetColumns();

public abstract DataTable GetColumns(string strTable);

protected abstract void InitConn(string strServer, string strDataBas e, string strUser, string strPwd);

protected abstract DbCommand GetCmd(string strCmd);

protected abstract DbDataAdapter DbAdp { get;}

}

}

c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(三)收藏

各派生类的具体实现,此时只要实现DBAccess的各个虚函数即可。

private class Access : DBAccess

{

public Access(DBType type)

: base(type)

{

}

protected override void InitConn(string strServer, string strDataBas e, string strUser, string strPwd)

{

string strConn = "Provider = ";

switch (strDataBase.Substring(https://www.doczj.com/doc/4113842116.html,stIndexOf('.') + 1). ToLower())

{

case "mdb": // 2000, 2003

strConn += "Microsoft.Jet.OleDb.4.0;";

break;

case "accdb": // 2007

strConn += "Microsoft.ACE.OLEDB.12.0;";

break;

default:

throw (new Exception("Unknown Access Version."));

//break;

}

strConn += CON_strDataBase + " = " + strDataBase;

//strConn += CON_strUser + " = " + strUser;

//strConn += CON_strPwd + " = " + strPwd;

base.m_oConn = new OleDbConnection(strConn);

}

protected override DbCommand GetCmd(string strCmd)

return new OleDbCommand(strCmd, (OleDbConnection)base.m_ oConn);

}

protected override DbDataAdapter DbAdp

{

get { return new OleDbDataAdapter(); }

}

public override DataTable Tables

{

get

{

return ((OleDbConnection)base.m_oConn).GetOleDbSchema Table(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });

}

}

public override DataTable GetColumns()

{

DataTable dt = new DataTable();

foreach (DataRow row in this.Tables.Rows)

{

dt.Merge(this.GetColumns(row["TABLE_NAME"].ToString()));

}

return dt;

}

public override DataTable GetColumns(string strTable)

return ((OleDbConnection)base.m_oConn).GetOleDbSchemaTa ble(OleDbSchemaGuid.Columns, new object[] { null, null, strTable, null });

}

}

private class SQL : DBAccess

{

public SQL(DBType type)

: base(type)

{

}

protected override void InitConn(string strServer, string strDataBas e, string strUser, string strPwd)

{

string strConn = CON_strServer + " = " + strServer + ";";

strConn += CON_strDataBase + " = " + strDataBase + ";";

strConn += CON_strUser + " = " + strUser + ";";

strConn += CON_strPwd + " = " + strPwd + ";";

strConn += CON_strConnTimeOut;

base.m_oConn = new SqlConnection(strConn);

}

protected override DbCommand GetCmd(string strCmd)

{

return new SqlCommand(strCmd, (SqlConnection)base.m_oCon n);

}

protected override DbDataAdapter DbAdp

{

get { return new SqlDataAdapter(); }

}

public override DataTable Tables

{

get { return ((SqlConnection)base.m_oConn).GetSchema("Tabl es", null); }

}

public override DataTable GetColumns()

{

return ((SqlConnection)base.m_oConn).GetSchema("Columns", n ull);

}

public override DataTable GetColumns(string strTable)

{

return ((SqlConnection)base.m_oConn).GetSchema("Columns ", new string[] { null, null, strTable, null });

}

}

c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(四)收藏

整个例子的完整代码如下,VS2008下编译测试通过,本人已通过它实现N个项目,欢迎大家评测,谢谢指教

public enum DBType

{

Access,

SQL,

DB2,

Oracle,

MySQL

}

public interface IDBAccess

{

void Init(string strServer, string strDataBase, string strUser, string str Pwd);

void Open();

void Close();

bool TestConn();

int RunNoQuery(string strCmd);

DataTable RunQuery(string strCmd);

DBType DBType { get;}

int GetFiledMax(string strTable, string strField);

DataTable Tables { get; }

DataTable GetColumns();

DataTable GetColumns(string strTable);

}

public static class DBAccessFactory

{

public static IDBAccess Create(DBType type)

{

IDBAccess IRet = null;

switch (type)

{

IRet = new Access(type);

break;

case DBType.SQL:

IRet = new SQL(type);

break;

default:

break;

}

return IRet;

}

private abstract class DBAccess : IDBAccess

{

protected DbConnection m_oConn = null;

protected const string CON_strServer = "Server";

protected const string CON_strDataBase = "Data Source";

protected const string CON_strUser = "UID";

protected const string CON_strPwd = "PWD";

protected const string CON_strConnTimeOut = "Connect Timeou t = 2";

private DBType m_eDBType = DBType.Access;

protected DBAccess(DBType type)

{

this.m_eDBType = type;

}

{

get { return this.m_eDBType; }

}

public void Init(string strServer, string strDataBase, string strUse r, string strPwd)

{

this.InitConn(strServer, strDataBase, strUser, strPwd);

}

public void Open()

{

if (this.m_oConn != null)

{

this.m_oConn.Open();

}

}

public int RunNoQuery(string strCmd)

{

int iRet = 0;

try

{

DbCommand oCmd = this.GetCmd(strCmd);

if (oCmd != null)

{

iRet = oCmd.ExecuteNonQuery();

}

}

catch (Exception ex)

{

throw (new Exception(ex.Message));

}

return iRet;

}

public int GetFiledMax(string strTable, string strField)

{

int iRet = -1;

DataTable dt = this.RunQuery("Select Max(" + strField + ") Fro m " + strTable);

if (dt != null && dt.Rows.Count == 1)

{

iRet = dt.Rows[0][0] is DBNull ? 0 : Convert.ToInt32(dt.Rows [0][0]);

}

return iRet;

}

public DataTable RunQuery(string strCmd)

{

DataTable dt = new DataTable();

DbDataAdapter adp = this.DbAdp;

adp.SelectCommand = this.GetCmd(strCmd);

adp.Fill(dt);

return dt;

}

public void Close()

{

if (this.m_oConn != null && this.m_oConn.State == System.Data. ConnectionState.Open)

{

this.m_oConn.Close();

}

}

public bool TestConn()

{

bool bRet = true;

try

{

if (this.m_oConn.State != System.Data.ConnectionState.Open)

{

this.m_oConn.Open();

}

bRet = this.m_oConn.State == System.Data.ConnectionState. Open;

}

catch

{

bRet = false;

}

this.Close();

return bRet;

}

public abstract DataTable Tables { get; }

public abstract DataTable GetColumns();

}

Access, SQL }

数据库基础操作语句

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\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 运算符

用T-SQL语句完成创建和管理数据库操作练习

-创建数据库语句语法: CREATE DATABASES 据库名 [ON [PRIMAR Y] {(NAME^据文件的逻辑名称, FILENAME‘数据文件的路径和文件名’,(要包含文件扩展名)SIZE二数据文件的初始容量,(不能小于Model数据库的初始文件大小) MAXSIZE二数据文件的最大容量, FILEGROWTH数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, FILENAMES务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, FILEGROWTH事务日志文件的增长量)儿…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT FROM master..sysdatabases WHERE name =' 数据库名')

DROP DATABASE数据库名 GO 修改数据库操作语句: ALTER DATABAS数据库名 {[add file 文件描述][to filegroup 文件组名] 新增数据文件I [add log file 文件描述] 新增日志文件 I [remove file 逻辑文件名]删除数据库文件 I [add filegroup 文件组名]新增文件组 I [remove filegroup 文件组名] 删除文件组 I [modify file 文件修改内容描述]修改数据文件属性} 查看数据库文件属性 EXECSp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 据库名 ON PRIMAR Y (FILENAME=') 说明:附加数据库只需指定数据库的主数据文

c#数据库连接、操作、封装dll

c#数据库连接去sql server 为了简化数据库连接和操作,编写一个数据库dll文件也是比较有用的。只需要设置参数就可以完成数据库操作 属性 OUTPUTSTR 存储过程输出 CONSTR 数据库连接字符串 SQL_SLT 存储过程名或sql语句列表名 代码错误信息返回或连接关闭状态 public int sql_select(int cmdtype, int sqlst,int n) 数据库语句执行方法, cmdtype设置数据源执行的SQL语句或存储过程,即commandtype属性(0为text枚举,1为storedprocedure枚举,其他值为tabledirect枚举); sqlst设置执行SQL语句的方式,0为executenonquery方法执行,1为executereader 方法执行,其他为executescalar方法执行。设置存储过程参数个数。方法返回受 影响的行数 public Boolean Connopen() 打开数据库连接方法,返回bool值,true为打开,false 为未打开,并将未打开错误返回到EXSTR属性里 public void conn_close() 连接关闭方法,将关闭状态返回到EXSTR属性 public void sqlsp(string p1,string p2,string p3,int p4,int p5) 获取SqlParameter 对象参数,p1获取SqlParameter.ParameterName属性值,p2获取SqlParameter.sqldbtype属性值, p3获取SqlParameter.value属性值,p4获取SqlParameter.size属性值, p5设置SqlParameter.Directions属性值,0为ParameterDirection.Input、 1为ParameterDirection.InputOutput、2为ParameterDirection.Output、 大于3为ParameterDirection.ReturnValue public DataSet ds 返回查询结果集 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; using System.Collections; namespace connet { public class jdbccoonn { private string constr, exstr, sql_slt,outputstr; private static int q; public static int Q { get {

用T-SQL语句完成创建与管理数据库操作练习

·创建数据库语句语法: CREATE DATABASE 数据库名 [ON [PRIMARY] {(NAME=数据文件的逻辑名称, ‘数据文件的路径和文件名’, (要包含文件扩展名) SIZE=数据文件的初始容量,(不能小于Model数据库的初始文件大小) MAXSIZE=数据文件的最大容量, 数据文件的增长量)}[,…n] LOG ON {(NAME=事务日志文件的逻辑名称, '事务日志文件的物理名称', SIZE=事务日志文件的初始容量, MAXSIZE=事务日志文件的最大容量, 事务日志文件的增长量) }[,…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = '数据库名') DROP DATABASE 数据库名 GO

修改数据库操作语句: ALTER DATABASE 数据库名 {[add file 文件描述] [to 文件组名] 新增数据文件 |[add log file 文件描述] 新增日志文件 |[remove file 逻辑文件名] 删除数据库文件 |[add 文件组名] 新增文件组 |[remove 文件组名] 删除文件组 |[modify file 文件修改内容描述] 修改数据文件属性} 查看数据库文件属性 EXEC sp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database 数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 数据库名 ON PRIMARY (’’) 说明:附加数据库只需指定数据库的主数据文件。 FOR ATTACH 如果移动过数据库文件,则需要指出所有移动过的文件。 用存储过程也可以附加数据库:

数据库新技术

数据库新技术综述 摘要:综述数据库新技术,指出数据库技术目前的研究状态和发展趋势,介绍一些数据库新技术的最新动态,并指出数据库应用所面临的挑战,指出数据库技术当今的研究热点和未来的发展趋势。 关键词:数据库;面向对象数据库;分布式数据库;数据仓库;数据挖掘;联机分析处理;发展 一、引言: 自从计算机问世以来,就有了处理数据、管理数据的需求,由此,计算机技术新的研究分支——数据库技术应运而生。随着计算机应用领域的不断扩展和多媒体技术的发展,数据库已经是计算机科学技术中发展最快、应用最广泛的重要分支之一。目前,数据库技术已经相当成熟,被广泛应用于各行各业中,成为现代信息技术的主要组成部分,是现代计算机信息系统和计算机应用的基础和核心。 另外,各种学科与数据库技术的有机结合,从而使数据库领域中新内容、新应用、新技术层出不穷,形成了各种各样的数据库系统:面向对象数据库系统、分布式数据库系统、知识数据库系统、模糊数据库系统、并行数据库系统、多媒体数据库系统等;数据库系统被应用到特定的领域后,又出现了工程数据库、演绎数据库、时态数据库、统计数据库、空间数据库、科学数据库、文献数据库等;他们继承了传统数据库的成果和技术,加以发展优化,从而形成的新的数据库,视为“进化”的数据库。可以说新一代数据库技术的研究与发展呈现了百花齐放的局面。 首先我们来了解一下数据库新技术有哪些:面向对象数据库;分布式数据库;数据仓库;数据挖掘;联机分析处理等。 二、概述新技术 (一).面向对象数据库技术 面向对象是一种认识方法学,也是一种新的程序设计方法学。把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。 其优点为: (1).易维护:可读性高且方便低成本; (2).质量高:在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量; (3).效率高:在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。

c#下各种数据库操作的封装!

c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(一)收藏 首先定义数据库操作的标准接口IDBAccess,定义接口的基本功能; 通过基本的接口设置,完成数据访问的统一抽象。 public interface IDBAccess { void Init(string strServer, string strDataBase, string strUser, string str Pwd); void Open(); void Close(); bool TestConn(); int RunNoQuery(string strCmd); DataTable RunQuery(string strCmd); DBType DBType { get;} int GetFiledMax(string strTable, string strField); DataTable Tables { get; } DataTable GetColumns(); DataTable GetColumns(string strTable); } c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE, MYSQL)(二)收藏 使用静态工厂模式,通过传入枚举型参数,动态创建访问实例 实现模式上采用基本实现接口,派生类继承基类的虚函数,从而实现代码的耦合较低,有很好的扩展性。 public enum DBType {

Access, SQL, DB2, Oracle, MySQL } public static class DBAccessFactory { public static IDBAccess Create(DBType type) { IDBAccess IRet = null; switch (type) { case DBType.Access: IRet = new Access(type); break; case DBType.SQL: IRet = new SQL(type); break; default: break; } return IRet; } private abstract class DBAccess : IDBAccess {

用TSQL语句完成创建与管理数据库操作练习

CREATE DATABASE 数据库名 [ON [PRIMARY] {(NAME= 数据文件的逻辑名称, FILENAME=‘ 数据文件的路径和文件名 ' , (要包含文件扩展名)SIZE= 数据文件的初始容量,(不能小于Model 数据库的初始文件大小) MAXSIZE= 数据文件的最大容量, FILEGROWTH二数据文件的增长量)}[,…n] LOG ON {(NAME= 事务日志文件的逻辑名称, FILENAME=' 事务日志文件的物理名称', SIZE= 事务日志文件的初始容量, MAXSIZE= 事务日志文件的最大容量, FILEGROWTH二事务日志文件的增长量)}[,…n]] 判断同名的数据库是否存在: IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = '数据库名') DROP DATABASE 数据库名 GO

ALTER DATABASE 数据库名 [add file 文件描述] [to filegroup 文件组名] 新增数据文件[add log file 文件描述] 新增日志文件 [remove file 逻辑文件名] 删除数据库文件 [add filegroup 文件组名] 新增文件组 [remove filegroup 文件组名] 删除文件组 [modify file文件修改内容描述]修改数据文件属性} 查看数据库文件属性 EXEC sp_helpfile 系统存储过程,用于查看数据库有哪些文件及文件属性。 删除数据库 Drop database 数据库名称 分离数据库 EXEC Sp_detach_db 数据库名称 附加数据库 CREATE DATABASE 数据库名 ON PRIMARY (FILENAME= '' ) 说明:附加数据库只需指定数据库的主数据文件。 FOR ATTACH 用存储过程也可以附加数据库: sp_attach_db 数据库名,filename= '' 如果移动过数据库文件,则需要指出所有移动过的文 件。

SQL数据库的基本操作

命令行 1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES; 2、建立数据库:mysql> CREATE DATABASE 库名; 3、建立数据表:mysql> USE 库名;mysql> CREATE TABLE 表名(字段名VARCHAR(20), 字段名CHAR(1)); 4、删除数据库:mysql> DROP DATABASE 库名; 5、删除数据表:mysql> DROP TABLE 表名; 6、将表中记录清空:mysql> DELETE FROM 表名; 7、往表中插入记录:mysql> INSERT INTO 表名VALUES ("hyq","M"); 8、更新表中数据:mysql-> UPDATE 表名SET 字段名1='a',字段名2='b' WHERE 字段名3='c'; 9、用文本方式将数据装入数据表中:mysql> load data local infile "d:/mysql.txt" into table 表名; 10、导入.sql文件命令:mysql> USE 数据库名;mysql> source d:/mysql.sql; 11、命令行修改root密码:mysql> update https://www.doczj.com/doc/4113842116.html,er set password=password('新密码') where user='root';mysql> flush privileges; 12.修改密码的三种方法:mysql>update user set password=password('') where user='joy_pen';mysql>flush privileges;mysql>set password for 'joy_oen'=password('');mysql>grant usage on *.* to 'joy_pen' identified by ''; 1、创建数据库 命令:create database <数据库名> 例如:建立一个名为xhkdb 的数据库mysql> create database xhkdb; 2、显示所有的数据库 命令:show databases (注意:最后有个s)mysql> show databases; 3、删除数据库 命令:drop database <数据库名> 例如:删除名为xhkdb的数据库mysql> drop database xhkdb; 4、连接数据库 命令:use <数据库名> 例如:如果xhkdb数据库存在,尝试存取它:mysql> use xhkdb; 屏幕提示:Database changed 5、当前选择(连接)的数据库mysql> select database(); 6、当前数据库包含的表信息:mysql> show tables; (注意:最后有个s) 三、表操作,操作之前应连接某个数据库 1、建表 命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]); mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default ''0'', > degree double(16,2)); 2、获取表结构 命令:desc 表名,或者show columns from 表名 mysql>DESCRIBE MyClass mysql> desc MyClass;

SQL 第3章 数据库的创建和管理(实训1新)

第3章数据库的创建和管理 动手操作一:查看系统数据库信息 任务1:在“资源对象管理器”中查看服务器中的系统数据库,并回答有哪些数据库。 系统数据库:master、model、msdb、tempdb 任务2:在“资源对象管理器”中查看各类数据库的属性。 任务3:在查询窗口中使用命令查看服务器中的系统数据库信息。

动手操作二:用界面方式创建数据库 任务1:在E盘以班级号创建一个文件夹。 任务2:在“资源对象管理器”中创建一个名为jxgl的数据库。 任务3:查看JXGL数据库对象和数据库文件。 任务4:在jxgl库中增加1个次文件组user1,并在其中增加一个数据文件j4_data,属性自定义。在jxgl中增加1个日志文件log2,属性自定义。

动手操作三:用命令创建数据库 任务1:创建一个默认参数的数据库db1。 任务2:查看db1数据库的信息,请说出该数据库中有哪些文件?逻辑文件名、磁盘文件名各是什么?它们的大小是多少?

有主数据文件和日志文件。逻辑文件名:主数据文件db1,日志文件db1_log。磁盘文件名:主数据文件db1.mdf, 日志文件db1_log.LDF。主数据文件:初始大小3MB,增量为1MB,不限制增长。日志文件:初始大小1MB,增量为10%,最大值为2,097,152。 任务3:按下列表格中的要求创建一个名为TESTDB的数据库。 create database TESTDB on primary (name=TD1,filename='E:\SQL\TD1.MDF', size=5MB,maxsize=20MB,filegrowth=10%), (name=TD2,filename='E:\SQL\TD2.NDF', size=10MB,maxsize=30MB,filegrowth=2MB), filegroup User1 (name=TD3,filename='E:\SQL\TD3.NDF', size=5MB,filegrowth=2MB) log on (name=TLOG,filename='E:\SQL\TLOG.LDF', size=4MB,filegrowth=20%)

实验七创建和操作数据库对象

实验报告 课程:数据库原理与实用技术实验 实验7 创建和操作数据库对象 实验7-1 存储过程 1、使用不带参数的存储过程 (1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系 create proc my_proc as select学号,姓名,性别,年龄,所在院系from学生表 where所在院系='计算机'and性别='女' (2)执行存储过程 (3)修改存储过程,使其能够查询计算机系女生的所有基本信息 alter proc my_proc as select*from学生表 where所在院系='计算机'and性别='女' 2、带输入参数的存储过程 (1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系 create proc my_procsex @sex char(2) as select学号,姓名,性别,年龄,所在院系from学生表where性别=@sex (2)执行存储过程 exec my_procsex @sex='男' 3、带输入/输出参数的存储过程 (1)创建一个存储过程my_procage,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息) create proc my_procage @name char(10),@age int OUTPUT as if not exists(select*from学生表where姓名=@name) return-155 select年龄from学生表where姓名=@name (2)执行存储过程 declare @once_age int, @status int exec @status=my_procage @name='陈忠刚', @age=@once_age output if @status=-155 print'对不起,您输入的名字查找失败!' print'the output data is:'+convert(varchar(10),@once_age)

对象关系模型数据库解析

面向对象数据库系统(Object Oriented Data Base System,简称OODBS)是数据库技术与面向对象程序设计方法相结合的产物。 对于OO数据模型和面向对象数据库系统的研究主要体现在:研究以关系数据库和SQL为基础的扩展关系模型;以面向对象的程序设计语言为基础,研究持久的程序设计语言,支持OO模型;建立新的面向对象数据库系统,支持OO数据模型。 面向对象程序设计方法是一种支持模块化设计和软件重用的实际可行的编程方法。它把程序设计的主要活动集中在建立对象和对象之间的联系(或通信)上,从而完成所需要的计算。一个面向对象的程序就是相互联系(或通信)的对象集合。面向对象程序设计的基本思想是封装和可扩展性。 面向对象数据库系统支持面向对象数据模型(以下简称OO模型)。即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者;而一个对象库是由一个OO模型所定义的对象的集合体。 一个OO模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。一系列面向对象核心概念构成了OO模型的基础。概括起来,OO模型的核心概念有如下一些: (1)对象(Object)与对象标识OID(Object IDentifier) 现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个唯一的标识,称为对象标识(OID)。 (2)封装(Encapsulation) 每一个对象是其状态与行为的封装,其中状态是该对象一系列属性(Attribute)值的集合,而行为是在对象状态上操作的集合,操作也称为方法(Method)。 (3)类(C1ass) 共享同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的一个实例(instance)。 (4)类层次(结构) 在一个面向对象数据库模式中,可以定义一个类(如C1)的子类(如C2),类Cl 称为类C2的超类(或父类)。子类(如C2)还可以再定义子类(如C3)。这样,面向对象数据库模式的一组类形成一个有限的层次结构,称为类层次。 (5)消息(Message) 由于对象是封装的,对象与外部的通信一般只能通过显式的消息传递,即消息从外部传送给对象,存取和调用对象中的属性和方法,在内部执行所要求的操作,操作的结果仍以消息的形式返回。 OODB语言用于描述面向对象数据库模式,说明并操纵类定义与对象实例。OODB语言主要包括对象定义语言(ODL)和对象操纵语言(OML),对象操纵语言中一个重要子集是对象查询语言(OQL)。OODB语言一般应具备下述功能: (1)类的定义与操纵 面向对象数据库语言可以操纵类,包括定义、生成、存取、修改与撤销类。其中类的定义包括定义类的属性、操作特征、继承性与约束等。 (2)操作/方法的定义 面向对象数据库语言可用于对象操作/方法的定义与实现。在操作实现中,语言的命令

C# SQLite数据库 访问封装类资料

C# SQLite数据库访问封装类 C# 异常处理(Catch Throw)IL分析在客户端配置文件节点下,添加:[html] view plain copy 在CODE上查看代码片派生到我的代码片 其中【localdb】是本地SQLite数据库的名称,【config/local.db】是在当前程序运行目录下SQLite数据库位置 C# SQLite数据库访问封装类代码: [csharp] view plain copy 在CODE上查看代码片派生到我的代码片 ///

/// 本类为SQLite数据库帮助静态类,使用时只需直接调用即可,无需实例化 /// public static class SQLiteHelper { // Application.StartupPath public static string LocalDbConnectionString = ConfigurationManager.ConnectionStrings["localdb"].ConnectionString; #region ExecuteNonQuery /// /// 执行数据库操作(新增、更新或删除) /// /// 连接字符串 /// SqlCommand对象 /// 所受影响的行数 public static int ExecuteNonQuery(string connectionString, SQLiteCommand cmd) { int result = 0; if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); using (SQLiteConnection con = new SQLiteConnection(connectionString)) { SQLiteTransaction trans = null; PrepareCommand(cmd, con, ref trans, true, https://www.doczj.com/doc/4113842116.html,mandType, https://www.doczj.com/doc/4113842116.html,mandText); try { result = cmd.ExecuteNonQuery(); https://www.doczj.com/doc/4113842116.html,mit(); }

偶得一个绝佳C#数据库封装类

本文由jsj05527贡献 偶得一个绝佳C#数据库封装类,与大家分享一下! - 楚广明的博客 - 博客园 楚广明的博客 教育不是灌溉,是点燃火焰 首页 联系 管理  偶得一个绝佳C#数据库封装类,与大家分享一下!  1using System; 2using System.Collections.Generic; 3using System.Text; 4using System.Data; 5using System.Configuration; 6using System.Data.Common; 7using System.Data.SqlClient; 8using System.Data.OleDb; 9using System.Data.Odbc; 10using System.Data.OracleClient; 11using System.IO; 12 13namespace BinaryIntellect.DataAccess 14{ 15 public class DatabaseHelper:IDisposable 16 { 17 private string strConnectionString; 18 private DbConnection objConnection; 19 private DbCommand objCommand; 20 private DbProviderFactory objFactory = null; 21 private bool boolHandleErrors; 22 private string strLastError; 23 private bool boolLogError; 24 private string strLogFile; 25 26 public DatabaseHelper(string connectionstring,Providers provider) 27 { 28 strConnectionString = connectionstring; 29 switch (provider) 30 { 31 case Providers.SqlServer: 32 objFactory = SqlClientFactory.Instance; 33 break; 34 case Providers.OleDb: 35 objFactory = OleDbFactory.Instance; 36 break; 37 case Providers.Oracle: 38 objFactory = OracleClientFactory.Instance; 39 break; 40 case Providers.ODBC: 41 objFactory = OdbcFactory.Instance; 42 break; 43 case Providers.ConfigDefined: 44 string providername=ConfigurationManager.ConnectionStrings["connec

DOS下操作数据库基本语法(简明扼要)

注:1Mysqldump是mysql数据库的自带备份函数。借助此命令可使备份变得简单。 2斜体部分是可以重命名的部分。 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构(不含数据) mysqldump -u username -p -d dbname > dbname.sql (3)导出数据库中的某张数据表(包含数据) mysqldump -u username -p dbname tablename > tablename.sql (4)导出数据库中的某张数据表的表结构(不含数据) mysqldump -u username -p -d dbname tablename > t ablename.sql 2.mysqldump常用实例: mysqldump常用于数据库的备份与还原,在备份的过程中我们可以根据自己的实际情况添加以上任何参数,假设有数据库test_db,执行以下命令,即可完成对整个数据库的备份: mysqldump -u root -p test_db > test_db.sql 如要对数据进行还原,可执行如下命令: mysql -u username -p test_db < test_db.sql 还原数据库操作还可以使用以下方法: mysql> sourcetest_db.sql dos命令行下连接和操作MySQL数据库 一、连接MYSQL。 格式: mysql -h主机地址 -u用户名-p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户 名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样)

创建数据库和表

数学与信息技术学院实验报告 实验课程名称:SQL语言基础实验 实验项目名称:实验二创建数据库和表 专业班级: 学号: 姓名: 指导教师:

实验一创建数据库和表 【实验目的】 (1)了解MySQL数据库的存储引擎的分类; (2)了解表的结构特点; (3)了解MySQL的基本数据类型; (4)了解空值概念; (5)学会使用SQL界面工具中创建数据库和表; (6)学会使用SQL语句创建数据库和表。 【实验容及步骤】 一,实验容 实验题目 创建用于企业管理的员工管理数据库,数据库名为YGGL,包含员工的信息、部门信息及员工的薪水信息。数据库YGGL包含下列3个表: (1)Employees:员工信息表: (2)Departments:部门信息表: (3)Salary:员工薪水情况表。 二,实验步骤 1,使用命令行为方式创建数据库YGGL

打开MySQL Command Line Client,输入管理员密码登录,使用CREATE语句创建YGGL数据库: Creat database YGGL; 2,使用SQL语句在YGGL数据库中创建表Employees 执行创建表employees的SQL语句: 用同样的方法在数据库YGGL中创建表Salary。 创建一个结构与employees表结构相同的空表Employees(): Creat table Employees0LIKE Employees; 3,使用SQL语句删除表和数据库 删除表employees: Drop table employees; 删除数据库YGGL Drop database YGGL;

C#数据库连接封装类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Configuration; namespace https://www.doczj.com/doc/4113842116.html,ponents.DBUtility { public class ConnetionLine { public static SqlHelper SystemManageCn { get { try { string connectionString = ConfigurationManager.ConnectionStrings["SystemManageConnectionString"].ConnectionString; SqlHelper sqlHelper = GetConnetion(connectionString); return sqlHelper; } catch (Exception ex) { throw ex; } } } public static SqlHelper JIEJINERPReportCn { get { try {

string connectionString = ConfigurationManager.ConnectionStrings["JIEJINERPReportConnectionString"].ConnectionString ; SqlHelper sqlHelper = GetConnetion(connectionString); return sqlHelper; } catch (Exception ex) { throw ex; } } } private static SqlHelper GetConnetion(String connectionString) { try { int stratNo = connectionString.IndexOf("Server") + 7; int endNo = connectionString.IndexOf(";"); string serverIP = connectionString.Substring(stratNo, endNo - stratNo); //string pingrst = CmdPing(serverIP); string pingrst = "连接"; if (pingrst != "连接") { throw new Exception(pingrst + "\n" + "無法連線到服務器,請檢查您的網絡連接狀態!!"); } SqlHelper cn = new SqlHelper(connectionString); return cn; } catch (Exception ex) { throw ex; } }

数据库与表的创建和使用

数据库与表的创建和使用 一、常用字段类型 1、字符型 2、数值型 3、日期型 4、逻辑型(T是,F否) 5、备注型 二、项目管理器 项目管理器是VFP中处理数据和对象的主要工具。项目管理器是系统的“控制中心”。一个项目是文件、数据、文档、对象的集合,项目文件以扩展名*.pjx保存。 创建一个项目文件的方法 1、CREATE PROJECT 项目文件名或? 2、文件—新建 3、工具栏“新建”按钮 二、数据库与表的概念 在VFP中有两种表:一种是自由表,它独立于任何数据库;一种是数据库表,它是数据库的一部分。 数据库和表是两个不同的概念。表是处理数据、建立关系数据库的应用程序的基础单元,它用于存储收集来的各种信息。而数据库是表的集合,它控制这些表协同工作,共同完成特定任务。 本节重点:数据库的创建和使用,数据库表的创建和使用,表的扩展属性,数据库表之间的关系的创建。 三、数据库的创建(*.dbc)

1、使用界面方式创建数据库:项目管理器、“新建”按钮 2、使用命令方式创建数据库 CREATE DATABASE 数据库文件名或? 四、打开数据库 OPEN DATABASE 数据库名或? 五、设置当前数据库 SET DATABASE TO 数据库名 六、修改数据库 MODIFY DATABASE 数据库文件名或? 七、关闭数据库 CLOSE DATABASE &&关闭当前数据库 CLOSE DATABASE ALL &&关闭所有数据库 八、删除数据库 DELETE DATABASE 数据库文件名或? 数据库表的创建和使用(*.dbf) 在VFP中,每个数据表可以有两种存在状态:自由表(即没有和任何数据库关联的*.dbf文件)或数据库表(即与数据库关联的*.dbf 文件)。属于某一数据库的表称为“数据库表”;不属于任何数据库而独立存在的表称为自由表。数据库表和自由表可以相互转换。 一、数据库表的创建

相关主题
文本预览
相关文档 最新文档