首页数据库数据库操作类 数据库有哪些类型

数据库操作类 数据库有哪些类型

编程之家2023-10-21107次浏览

很多朋友对于数据库操作类和数据库有哪些类型不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

数据库操作类 数据库有哪些类型

C#中如何定义数据库操作类,并调用

以下是我编写的一个操作access数据库的类,其他数据库可以参考修改,原理差不多的。希望对你有帮助。

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.OleDb;

using System.Configuration;

数据库操作类 数据库有哪些类型

using System.Data;

namespace AutoEmailSender

{

///<summary>

///数据库交互类

///</summary>

数据库操作类 数据库有哪些类型

public class DB

{

///<summary>

///获得数据库连接

///</summary>

///<returns></returns>

public static OleDbConnection GetDBConnection()

{

return new OleDbConnection(ConfigurationManager.AppSettings["ConnectString"]);

}

///<summary>

///查询结果集

///</summary>

///<param name="sql">执行语句</param>

///<returns>返回一个DataTable对象</returns>

public static DataTable ExecuteDataTable(string sql)

{

using(OleDbConnection con= GetDBConnection())

{

OleDbCommand cmd= new OleDbCommand(sql, con);

return ExecuteDataTable(cmd);

}

}

///<summary>

///查询结果集

///</summary>

///<param name="cmd">执行语句的OleDbCommand命令</param>

///<returns>返回一个DataTable对象</returns>

public static DataTable ExecuteDataTable(OleDbCommand cmd)

{

DataSet ds= new DataSet();

using(OleDbDataAdapter da= new OleDbDataAdapter(cmd))

{

try

{

da.Fill(ds);

}

catch(Exception e)

{

throw e;

}

}

if(ds.Tables.Count> 0)

{

ds.Tables[0].DefaultView.RowStateFilter= DataViewRowState.Unchanged| DataViewRowState.Added| DataViewRowState.ModifiedCurrent| DataViewRowState.Deleted;

return ds.Tables[0];

}

else

return null;

}

///<summary>

///执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。

///</summary>

///<param name="sql">查询语句</param>

///<returns>返回结果集中第一行的第一列的object值</returns>

public static object ExecuteScalar(string sql)

{

using(OleDbConnection con= GetDBConnection())

{

OleDbCommand cmd= new OleDbCommand(sql, con);

return ExecuteScalar(cmd);

}

}

///<summary>

///执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。

///</summary>

///<param name="cmd">查询命令</param>

///<returns>返回结果集中第一行的第一列的object值</returns>

public static object ExecuteScalar(OleDbCommand cmd)

{

try

{

cmd.Connection.Open();

object obj= cmd.ExecuteScalar();

cmd.Connection.Close();

return obj;

}

catch(Exception error)

{

cmd.Connection.Close();

throw error;

}

}

///<summary>

///更新数据集

///</summary>

///<param name="dt">要更新的数据集</param>

///<param name="insertCmd">插入SQL语句</param>

///<param name="updateCmd">更新SQL语句</param>

///<param name="deleteCmd">删除SQL语句</param>

///<returns></returns>

public static int UpdateDataSet(DataTable dt, OleDbCommand insertCmd, OleDbCommand updateCmd, OleDbCommand deleteCmd)

{

using(OleDbDataAdapter da= new OleDbDataAdapter())

{

da.InsertCommand= insertCmd;

da.UpdateCommand= updateCmd;

da.DeleteCommand= deleteCmd;

//da.UpdateBatchSize= 0;//UpdateBatchSize:指定可在一次批处理中执行的命令的数量,在Access不被支持。0:批大小没有限制。1:禁用批量更新。>1:更改是使用 UpdateBatchSize操作的批处理一次性发送的。

da.InsertCommand.UpdatedRowSource= UpdateRowSource.None;

da.UpdateCommand.UpdatedRowSource= UpdateRowSource.None;

da.DeleteCommand.UpdatedRowSource= UpdateRowSource.None;

try

{

int row= da.Update(dt);

return row;

}

catch(Exception e)

{

throw e;

}

}

}

///<summary>

///返回一个查询语句执行结果的表结构

///</summary>

///<param name="sql">查询语句,不支持复杂SQL</param>

///<returns></returns>

public static DataTable GetTableSchema(string sql)

{

sql= sql.ToUpper();

DataTable dt= null;

using(OleDbConnection con= GetDBConnection())

{

OleDbCommand cmd= new OleDbCommand(sql, con);

con.Open();

using(OleDbDataReader dr= cmd.ExecuteReader(CommandBehavior.KeyInfo| CommandBehavior.SchemaOnly| CommandBehavior.CloseConnection))

{

dt= dr.GetSchemaTable();

}

}

return dt;

}

///<summary>

///根据输入的查询语句自动生成插入,更新,删除命令

///</summary>

///<param name="sql">查询语句</param>

///<param name="insertCmd">插入命令</param>

///<param name="updateCmd">更新命令</param>

///<param name="deleteCmd">删除命令</param>

public static void GenerateUpdateSQL(string sql, OleDbCommand insertCmd, OleDbCommand updateCmd, OleDbCommand deleteCmd)

{

sql= sql.ToUpper();

DataTable dt= GetTableSchema(sql);

string tableName= dt.Rows[0]["BaseTableName"].ToString();

List<OleDbParameter> updatePrimarykeys= new List<OleDbParameter>();//主键参数集合

List<OleDbParameter> deletePrimarykeys= new List<OleDbParameter>();//主键参数集合,因为不能同时被OleDbCommand个命令引用,所以多申明一个

List<OleDbParameter> insertFields= new List<OleDbParameter>();//字段参数集合

List<OleDbParameter> updateFields= new List<OleDbParameter>();//字段参数集合

string columns= string.Empty, values="", set="", where="";

foreach(DataRow dr in dt.Rows)

{

if(dr["IsAutoIncrement"].ToString().Equals("False"))

{

insertFields.Add(new OleDbParameter("@"+ dr["BaseColumnName"].ToString(),

(OleDbType)dr["ProviderType"],

Convert.ToInt32(dr["ColumnSize"]),

dr["BaseColumnName"].ToString()));

updateFields.Add(new OleDbParameter("@"+ dr["BaseColumnName"].ToString(),

(OleDbType)dr["ProviderType"],

Convert.ToInt32(dr["ColumnSize"]),

dr["BaseColumnName"].ToString()));

if(!string.IsNullOrEmpty(columns))

columns+=",";

columns+= dr["BaseColumnName"].ToString();

if(!string.IsNullOrEmpty(values))

values+=",";

values+="@"+ dr["BaseColumnName"].ToString();

if(!string.IsNullOrEmpty(set))

set+=",";

set+= dr["BaseColumnName"].ToString()+"=@"+ dr["BaseColumnName"].ToString();

}

if(dr["IsKey"].ToString().Equals("True"))

{

updatePrimarykeys.Add(new OleDbParameter("@OLD_"+ dr["BaseColumnName"].ToString(),

(OleDbType)dr["ProviderType"],

Convert.ToInt32(dr["ColumnSize"]),

ParameterDirection.Input,

Convert.ToBoolean(dr["AllowDBNull"]),

Convert.ToByte(dr["NumericScale"]),

Convert.ToByte(dr["NumericPrecision"]),

dr["BaseColumnName"].ToString(), DataRowVersion.Original, null));

deletePrimarykeys.Add(new OleDbParameter("@OLD_"+ dr["BaseColumnName"].ToString(),

(OleDbType)dr["ProviderType"],

Convert.ToInt32(dr["ColumnSize"]),

ParameterDirection.Input,

Convert.ToBoolean(dr["AllowDBNull"]),

Convert.ToByte(dr["NumericScale"]),

Convert.ToByte(dr["NumericPrecision"]),

dr["BaseColumnName"].ToString(), DataRowVersion.Original, null));

if(!string.IsNullOrEmpty(where))

where+=" and";

where+= dr["BaseColumnName"].ToString()+"=@OLD_"+ dr["BaseColumnName"].ToString();

}

}

insertCmd.CommandText= string.Format("insert into{0}({1}) values({2})", tableName, columns, values);

updateCmd.CommandText= string.Format("update{0} set{1} where{2}", tableName, set, where);

deleteCmd.CommandText= string.Format("delete from{0} where{1}", tableName, where);

insertCmd.Connection= GetDBConnection();

updateCmd.Connection= GetDBConnection();

deleteCmd.Connection= GetDBConnection();

foreach(OleDbParameter pa in insertFields)

{

insertCmd.Parameters.Add(pa);

}

foreach(OleDbParameter pa in updateFields)

{

updateCmd.Parameters.Add(pa);

}

foreach(OleDbParameter pa in updatePrimarykeys)

{

updateCmd.Parameters.Add(pa);

}

foreach(OleDbParameter pa in deletePrimarykeys)

{

deleteCmd.Parameters.Add(pa);

}

}

}

}

数据库有哪些类型

数据库有两种类型,分别是关系型数据库与非关系型数据库。

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

关系型数据库主要有:

Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等等。

非关系型数据库主要有:

NoSql、Cloudant、MongoDb、redis、HBase等等。

扩展资料:

非关系型数据库的优势:

1、性能高:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。

2、可扩展性好:同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

关系型数据库的优势:

1、可以复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

2、事务支持良好:使得对于安全性能很高的数据访问要求得以实现。

参考资料来源:百度百科-数据库

请问数据库有哪些种类呢

数据库通常分为:

层次式数据库、网络式数据库和关系式数据库三种。

而不同的数据库是按不同的数据结构来联系和组织的。

数据库有类型之分,是根据数据模型划分的。目前成熟地应用在数据库系统中的数据模型有:层次模型、网壮模型和关系模型。

一、层次模型:

层次模型是用树结构表示记录类型及其联系的。

树结构的基本特点是:

1、有且仅有一个结点无父结点;

2、其它结点有且有一个父结点。

在层次模型中,树的结点是记录型。上一层记录型和下一层记录型的联系是1:n的。

层次模型就象下面我们给出的一棵倒立的树。

注意:在层次式数据库中查找记录,必须指定存取路径。这种关系模型不支持m:n联系。

二、网状模型:

网状模型中结点间的联系不受层次限制,可以任意发生联系,所以她的结构是结点的连通图。

网状模型结构的特点是:

1、有一个以上结点无父结点;

2、至少有一个结点有多于一个父结点。

注意:虽然网状模型能反映各种复杂的关系,但网状模型在具体实现上,只支持1:n联系,对

于m:n联系可将其转化为1:n联系。

三、关系模型:

关系模型的本质就是用若干个二维表来表示实体及其联系。

关系是通过关系名和属性名定义的。一个关系可形式化表示为:

R(A1,A2,A3,…,Ai,…)

其中:R为关系名,Ai为关系的属性名。

目前常用的数据库管理系统有:

ACCESS、SQL Server、 Oracle、MySQL、FoxPro和Sybase等。

ACCESS是美国Microsoft公司于1994年推出的微机数据库管理系统.它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。

Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore。Oracle提供的完整的电子商务产品和服务包括:用于建立和交付基于Web的Internet平台;综合、全面的具有Internet能力的商业应用;强大的专业服务,帮助用户实施电子商务战略,以及设计、定制和实施各种电子商务解决方案...

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的是关系型数据库管理系统。

内容来源网络,仅供参考!

如果你还想了解更多这方面的信息,记得收藏关注本站。

服务器远程端口,远程桌面连接的端口号是多少数据库时间格式?数据库中 日期的几种表示方法