GVKun编程网logo

php连接mysql,mssql,oracle(php连接sqlserver数据库)

2

这篇文章主要围绕php连接mysql,mssql,oracle和php连接sqlserver数据库展开,旨在为您提供一份详细的参考资料。我们将全面介绍php连接mysql,mssql,oracle的优

这篇文章主要围绕php连接mysql,mssql,oraclephp连接sqlserver数据库展开,旨在为您提供一份详细的参考资料。我们将全面介绍php连接mysql,mssql,oracle的优缺点,解答php连接sqlserver数据库的相关问题,同时也会为您带来(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)、C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架、C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)、ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)的实用方法。

本文目录一览:

php连接mysql,mssql,oracle(php连接sqlserver数据库)

php连接mysql,mssql,oracle(php连接sqlserver数据库)

php连接mysql,mssql,oracle
  1. dbtypedef.php
  2. // 数据库部分参数设置
  3. @define("DATABASE_ACCESS", 0);
  4. @define("DATABASE_MSSQL", 1);
  5. @define("DATABASE_ORACLE", 2);
  6. @define("DATABASE_MYSQL", 3);
  7. @define("DATABASE_POSTGRESQL",4);
  8. @define("DATABASE_SQLITE", 5);
  9. ?>
  10. /*==============================================================*/
  11. /* 文件名称: Model.class.php
  12. /* 概要: 数据访问层数据库处理的公共父类模型). */
  13. /* 作者:
  14. /* 创建时间: 2010-10-20
  15. /*==============================================================*/
  16. class Model {
  17. protected $mysqli; //
  18. protected $messList; //提示信息列表
  19. protected $tabName; //数据表
  20. protected $fieldList; //数据列表
  21. protected $oracle; //数据列表
  22. public function __construct() {
  23. if(DB_TYPE == DATABASE_MYSQL)
  24. {
  25. $this->mysqli = new mysqli ( DB_HOST, DB_USER, DB_PWD, DB_NAME );
  26. $this->mysqli->query("set names utf8");
  27. if (mysqli_connect_errno ()) {
  28. echo "" . mysqli_connect_error ();
  29. $this->mysqli = FALSE;
  30. exit();
  31. }
  32. }
  33. else if(DB_TYPE == DATABASE_MSSQL)
  34. {
  35. $conn=mssql_connect(DB_HOST, DB_USER, DB_PWD)or die("Couldn''t connect to SQL Server on ".DB_HOST."");
  36. mssql_select_db(DB_NAME,$conn);
  37. mssql_query("set names utf8");
  38. }
  39. else if(DB_TYPE == DATABASE_ORACLE)
  40. {
  41. $ora_connstr = "(description=(address=(protocol=tcp) (host=".DB_HOST.")(port=".DB_PORT.")) (connect_data=(service_name=".DB_NAME.")))";
  42. $this->oracle = oci_connect(DB_USER, DB_PWD,$ora_connstr);
  43. if (!$this->oracle) {
  44. echo "oracle连接失败";
  45. $e = oci_error();
  46. trigger_error(htmlentities($e[''message''], ENT_QUOTES), E_USER_ERROR);
  47. }
  48. }
  49. }
  50. }
复制代码


(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)

(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)

一、C# vs SQLite: C#SQLite 字段名类型库类型GetFieldType(#)转换备注 F_BOOLboolBIT NOT NULLBoolean F_BOOL_NULLbool?BITBoolean F_SBYTEsbyteINT8 NOT NULLSBytesbyte_ F_SBYTE_NULLsbyte?INT8SBytesbyte_ F_BYTEbyteUINT8 NOT NULLByte F_BYTE_NULLbyte

一、c# vs sqlite:

C# SQLite

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool BIT NOT NULL Boolean    

F_BOOL_NULL bool? BIT Boolean    

F_SBYTE sbyte INT8 NOT NULL SByte sbyte_  

F_SBYTE_NULL sbyte? INT8 SByte sbyte_  

F_BYTE byte UINT8 NOT NULL Byte    

F_BYTE_NULL byte? UINT8 Byte    

F_SHORT short INT16 NOT NULL Int16    

F_SHORT_NULL short? INT16 Int16    

F_USHORT ushort UINT16 NOT NULL UInt16 ushort_  

F_USHORT_NULL ushort? UINT16 UInt16 ushort_  

F_INT int INT32 NOT NULL Int32    

F_INT_NULL int? INT32 Int32    

F_UINT uint UINT32 NOT NULL UInt32 uint_  

F_UINT_NULL uint? UINT32 UInt32 uint_  

F_LONG long INT64 NOT NULL Int64    

F_LONG_NULL long? INT64 Int64    

F_ULONG ulong UINT64 NOT NULL UInt64 ulong_  

F_ULONG_NULL ulong? UINT64 UInt64 ulong_  

F_FLOAT float FLOAT NOT NULL Double   不转兼容

F_FLOAT_NULL float? FLOAT Double   不转兼容

F_DOUBLE double DOUBLE NOT NULL Double    

F_DOUBLE_NULL double? DOUBLE Double    

F_DECIMAL decimal DECIMAL NOT NULL Decimal   存取不一:: [-79228162514264300000000000000] != [-79228162514264337593543950335]

F_DECIMAL_NULL decimal? DECIMAL Decimal   存取不一:: [-79228162514264300000000000000] != [-79228162514264337593543950335]

F_CHAR char TEXT NOT NULL String    

F_CHAR_NULL char? TEXT String    

F_STRING string TEXT NOT NULL String    

F_STRING_NULL string TEXT String    

F_DATETIME DateTime TEXT NOT NULL String    

F_DATETIME_NULL DateTime? TEXT String    

           

二、 C# vs MySQL:

C# MySQL

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool BOOL NOT NULL Boolean    

F_BOOL_NULL bool? BOOL NULL Boolean    

F_SBYTE sbyte TINYINT NOT NULL SByte sbyte_  

F_SBYTE_NULL sbyte? TINYINT NULL SByte sbyte_  

F_BYTE byte TINYINT UNSIGNED NOT NULL Byte    

F_BYTE_NULL byte? TINYINT UNSIGNED NULL Byte    

F_SHORT short SMALLINT NOT NULL Int16    

F_SHORT_NULL short? SMALLINT NULL Int16    

F_USHORT ushort SMALLINT UNSIGNED NOT NULL UInt16 ushort_  

F_USHORT_NULL ushort? SMALLINT UNSIGNED NULL UInt16 ushort_  

F_INT int INT NOT NULL Int32    

F_INT_NULL int? INT NULL Int32    

F_UINT uint INT UNSIGNED NOT NULL UInt32 uint_  

F_UINT_NULL uint? INT UNSIGNED NULL UInt32 uint_  

F_LONG long BIGINT NOT NULL Int64    

F_LONG_NULL long? BIGINT NULL Int64    

F_ULONG ulong BIGINT UNSIGNED NOT NULL UInt64 ulong_  

F_ULONG_NULL ulong? BIGINT UNSIGNED NULL UInt64 ulong_  

F_FLOAT float FLOAT NOT NULL Single   极值溢出

F_FLOAT_NULL float? FLOAT NULL Single   极值溢出

F_DOUBLE double DOUBLE NOT NULL Double    

F_DOUBLE_NULL double? DOUBLE NULL Double    

F_DECIMAL decimal DECIMAL NOT NULL Decimal   极值溢出

F_DECIMAL_NULL decimal? DECIMAL NULL Decimal   极值溢出

F_CHAR char CHARACTER NOT NULL String   中文报错

F_CHAR_NULL char? CHARACTER NULL String   中文报错

F_STRING string VARCHAR(50) NOT NULL String    

F_STRING_NULL string VARCHAR(50) NULL String    

F_DATETIME DateTime DATETIME NOT NULL DateTime    

F_DATETIME_NULL DateTime? DATETIME NULL DateTime    

           

三、 C# vs MSSQL:

C# MSSQL

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool bit NOT NULL Boolean    

F_BOOL_NULL bool? bit NULL Boolean    

F_SBYTE sbyte smallint NOT NULL Int16 sbyte_short  

F_SBYTE_NULL sbyte? smallint NULL Int16 sbyte_short  

F_BYTE byte tinyint NOT NUL; Byte    

F_BYTE_NULL byte? tinyint NULL Byte    

F_SHORT short smallint NOT NULL Int16    

F_SHORT_NULL short? smallint NULL Int16    

F_USHORT ushort int NOT NULL Int32 ushort_int  

F_USHORT_NULL ushort? int NULL Int32 ushort_int  

F_INT int int NOT NULL Int32    

F_INT_NULL int? int NULL Int32    

F_UINT uint bigint NOT NULL Int64 uint_long  

F_UINT_NULL uint? bigint NULL Int64 uint_long  

F_LONG long bigint NOT NULL Int64    

F_LONG_NULL long? bigint NULL Int64    

F_ULONG ulong real NOT NULL Single ulong_float  

F_ULONG_NULL ulong? real NULL Single ulong_float  

F_FLOAT float real NOT NULL Single    

F_FLOAT_NULL float? real NULL Single    

F_DOUBLE double float NOT NULL Double    

F_DOUBLE_NULL double? float NULL Double    

F_DECIMAL decimal decimal NOT NULL Decimal   极值溢出

F_DECIMAL_NULL decimal? decimal NULL Decimal   极值溢出

F_CHAR char char(1) NOT NULL String    

F_CHAR_NULL char? char(1) NULL String    

F_STRING string varchar(50) NOT NULL F_STRING:    

F_STRING_NULL string varchar(50) NULL String    

F_DATETIME DateTime datetime NOT NULL DateTime  

F_DATETIME_NULL DateTime? datetime NULL DateTime    

           

四、C# vs Oracle:

C# Oracle

字段名 类型 库类型 GetFieldType(#) 转换 备注

F_BOOL bool CHAR(1) NOT NULL String bool_string  

F_BOOL_NULL bool? CHAR(1) String bool_string  

F_SBYTE sbyte NUMBER(3) NOT NULL Int16 sbyte_short  

F_SBYTE_NULL sbyte? NUMBER(3) Int16 sbyte_short  

F_BYTE byte NUMBER(3) NOT NULL Int16 byte_short  

F_BYTE_NULL byte? NUMBER(3) Int16 byte_short  

F_SHORT short NUMBER(5) NOT NULL Int32 short_int  

F_SHORT_NULL short? NUMBER(5) Int32 short_int  

F_USHORT ushort NUMBER(5) NOT NULL Int32 ushort_int  

F_USHORT_NULL ushort? NUMBER(5) Int32 ushort_int  

F_INT int NUMBER(10) NOT NULL Int64 int_long  

F_INT_NULL int? NUMBER(10) Int64 int_long  

F_UINT uint NUMBER(10) NOT NULL Int64 uint_long  

F_UINT_NULL uint? NUMBER(10) Int64 uint_long  

F_LONG long NUMBER(19) NOT NULL Decimal long_decimal  

F_LONG_NULL long? NUMBER(19) Decimal long_decimal  

F_ULONG ulong NUMBER(19) NOT NULL Decimal ulong_decimal  

F_ULONG_NULL ulong? NUMBER(19) Decimal ulong_decimal  

F_FLOAT float BINARY_FLOAT NOT NULL Single    

F_FLOAT_NULL float? BINARY_FLOAT Single    

F_DOUBLE double BINARY_DOUBLE NOT NULL Double   极值溢出

F_DOUBLE_NULL double? BINARY_DOUBLE Double   极值溢出

F_DECIMAL decimal DECIMAL(33,3) NOT NULL Decimal    

F_DECIMAL_NULL decimal? DECIMAL(33,3) Decimal    

F_CHAR char CHAR(1) NOT NULL String    

F_CHAR_NULL char? CHAR(1) String    

F_STRING string VARCHAR(50) NOT NULL String   不允许空字符

F_STRING_NULL string VARCHAR(50) String   不允许空字符

F_DATETIME DateTime TIMESTAMP NOT NULL DateTime   大值读取报错

F_DATETIME_NULL DateTime? TIMESTAMP DateTime   大值读取报

 

C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架

C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架

  C# 多数据库组件包支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 框架网

C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网
 
 

我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如 Microsoft SQL Server,超大型系统有的使用 Oracle,部分 Web 系统采用开源的 MySQL 等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。

 
C/S 框架网为广大用户定制开发一套基于 C# 语言的多数据库组件包,以及用户操作手册。
 

C# 语言多数据库组件包 (支持 MSSQL+Oracle+MySQL)
 
CSFramework.DB.realease.rar
 
下载链接: https://pan.baidu.com/s/1bmzNVwQ4-F2svTLByIPaQA 密码:fy9s
 
贴图图片
 

 
《CSFramework.DB 用户操作手册》.pdf
 
下载链接: https://pan.baidu.com/s/1rauYthmGjHQ5T8IeLuG0Ww 密码:1fsu
 

基于C#语言多数据库组件包及用户操作手册
 
 


C# Code:

/// <summary>
/// IDatabase 数据库接口
/// </summary>
public interface IDatabase : IAdoFactory
{
   int DefaultPort { get; }
   
   int CommandTimeout { get; }
   
   int ConnectionTimeout { get; }
   
   Type DateTimeType { get; }
   
   DateTime GetServerTime();
   
   String ConnectionString { get; set; }
   
   DbTransaction TransBegin();
   
   void TransCommit(DbTransaction trans, bool closeConnection = false);
   
   void TransRollback(DbTransaction trans, bool closeConnection = false);
   
   DataSet GetDataSet(string SQL);
   
   DataSet GetDataSet(DbCommand cmd);
   
   DataSet GetDataSet(string text, CommandType type, IDataParameter[] paras);
   
   DataTable GetTable(string SQL, string tableName = "");
   
   DataTable GetTable(DbCommand cmd, string tableName = "");
   
   DataRow GetDataRow(string SQL);
   
   int ExecuteSQL(string SQL);
   
   int ExecuteCommand(DbCommand cmd);
   
   object ExecuteScalar(string SQL);
   
   object ExecuteScalar(DbCommand cmd);
   
   DbDataReader ExecuteReader(string SQL);
   
   DbDataReader ExecuteReader(DbCommand cmd);
   
   List<T> ExecuteReader<T>(string SQL, Func<DbDataReader, T> action) where T : new();
   
   List<T> ExecuteReader<T>(DbCommand cmd, Func<DbDataReader, T> action) where T : new();
   
   T ExecuteReader<T>(DbCommand cmd) where T : new();
   
   T ExecuteReader<T>(string SQL) where T : new();
   
   int ExecuteTrans(DbTransaction trans, string SQL);
   
   void Close(DbConnection connection);
}

// 来源:C/S 框架网 (www.csframework.com) QQ:23404761



C# Code:

/// <summary>
/// ADO (ActiveX Data Object) ADO.NET 活动数据对象工厂
/// </summary>
public interface IAdoFactory
{
   string BuildConnectionString(string server, int port, string dbName, string uid, string pwd, int timeout = 10);
   
   CommandHelper CreateSqlProc(string spName);
   
   CommandHelper CreateCommand(string commandText);
   
   /// <summary>
   /// DbCommand 的参数符号,@,?
   /// </summary>
   string ParamSymboName { get; }
   
   DbParameter CreateTimestampParameter(string parameterName, string fieldName);
   
   DbConnection CreateConnection();
   
   DbConnection CreateConnection(string connectionString);
   
   DbCommand CreateCommand(string commandText, CommandType commandType);
   
   DbParameter CreateParameter(string parameterName, object parameterValue);
   
   DbCommandBuilder CreateCommandBuilder();
   
   DbDataAdapter CreateDataAdapter();
   
   DbDataAdapter CreateDataAdapter(AdapterRowUpdatingEvent eventHandler);
   
}

// 来源:C/S 框架网 (www.csframework.com) QQ:23404761

 
 

C# Code:


/// <summary>
/// 数据库对象工厂
/// </summary>
public static class DatabaseFactory
{
   /// <summary>
   /// 创建数据库(使用 DataProviderFactory 创建数据存取基础组件,通用版)
   /// </summary>
   /// <param name="providerType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateMDB(DatabaseType providerType, string connectionString)
   {
      return new DatabaseMDB(providerType, connectionString);
   }
   
   /// <summary>
   /// 创建 SQL Server 数据库
   /// </summary>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateSqlDatabase(string connectionString)
   {
      return new DatabaseMSSQL(connectionString);
   }
   
   /// <summary>
   /// 创建 MySQL 数据库
   /// </summary>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateMySqlDatabase(string connectionString)
   {
      return new DatabaseMySQL(connectionString);
   }
   
   /// <summary>
   /// 创建 Oracle 数据库
   /// </summary>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateOracleDatabase(string connectionString)
   {
      return new DatabaseOracle(connectionString);
   }
   
   /// <summary>
   /// 创建数据库
   /// </summary>
   /// <param name="dbType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateDatabase(DatabaseType dbType, string connectionString)
   {
      if (dbType == DatabaseType.SqlServer)
      return new DatabaseMSSQL(connectionString);
      if (dbType == DatabaseType.MySQL)
      return new DatabaseMySQL(connectionString);
      if (dbType == DatabaseType.Oracle)
      return new DatabaseOracle(connectionString);
      throw new Exception ("未支持的数据库类型!");
   }
   
   /// <summary>
   /// 创建数据库
   /// </summary>
   /// <param name="dbType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据库连接字符串 </param>
   /// <returns></returns>
   public static IDatabase CreateDatabase(string dbType, string connectionString)
   {
      DatabaseType databaseType;
      if (!Enum.TryParse<DatabaseType>(dbType, true, out databaseType))
      throw new Exception ("不支持的数据库类型!");
      
      if (databaseType == DatabaseType.SqlServer)
      return new DatabaseMSSQL(connectionString);
      if (databaseType == DatabaseType.MySQL)
      return new DatabaseMySQL(connectionString);
      if (databaseType == DatabaseType.Oracle)
      return new DatabaseOracle(connectionString);
      throw new Exception ("未支持的数据库类型!");
   }
   
   /// <summary>
   /// ADO 组件工厂
   /// </summary>
   /// <param name="dbType"> 数据库类型 </param>
   /// <param name="connectionString"> 数据连接字符串 </param>
   /// <returns></returns>
   public static IAdoFactory GetADOFactory(DatabaseType dbType, string connectionString)
   {
      return CreateDatabase(dbType, connectionString);
   }
}

// 来源:C/S 框架网 (www.csframework.com) QQ:23404761

 
相关文章:
 
如何使用多数据库 IDatabase 接口以及数据访问层应用
 
http://www.csframework.com/archive/1/arc-1-20181217-2511.htm
 
 

 
本文转自: http://www.csframework.com/archive/1/arc-1-20181217-2510.htm
 

C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)

C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)

 MSSQL

SQLITE

一、C# vs SQLite:

C# SQLite 字段名 类型 库类型 GetFieldType(#) 转换 备注 F_BOOL bool BIT NOT NULL Boolean     F_BOOL_NULL bool? BIT Boolean     F_SBYTE sbyte INT8 NOT NULL SByte sbyte_   F_SBYTE_NULL sbyte? INT8 SByte sbyte_   F_BYTE byte UINT8 NOT NULL Byte     F_BYTE_NULL byte? UINT8 Byte     F_SHORT short INT16 NOT NULL Int16     F_SHORT_NULL short? INT16 Int16     F_USHORT ushort UINT16 NOT NULL UInt16 ushort_   F_USHORT_NULL ushort? UINT16 UInt16 ushort_   F_INT int INT32 NOT NULL Int32     F_INT_NULL int? INT32 Int32     F_UINT uint UINT32 NOT NULL UInt32 uint_   F_UINT_NULL uint? UINT32 UInt32 uint_   F_LONG long INT64 NOT NULL Int64     F_LONG_NULL long? INT64 Int64     F_ULONG ulong UINT64 NOT NULL UInt64 ulong_   F_ULONG_NULL ulong? UINT64 UInt64 ulong_   F_FLOAT float FLOAT NOT NULL Double   不转兼容 F_FLOAT_NULL float? FLOAT Double   不转兼容 F_DOUBLE double DOUBLE NOT NULL Double     F_DOUBLE_NULL double? DOUBLE Double     F_DECIMAL decimal DECIMAL NOT NULL Decimal   存取不一:<F_DECIMAL>: [-79228162514264300000000000000] != [-79228162514264337593543950335] F_DECIMAL_NULL decimal? DECIMAL Decimal   存取不一:<F_DECIMAL>: [-79228162514264300000000000000] != [-79228162514264337593543950335] F_CHAR char TEXT NOT NULL String     F_CHAR_NULL char? TEXT String     F_STRING string TEXT NOT NULL String     F_STRING_NULL string TEXT String     F_DATETIME DateTime TEXT NOT NULL String     F_DATETIME_NULL DateTime? TEXT String                

二、 C# vs MySQL:

C# MySQL 字段名 类型 库类型 GetFieldType(#) 转换 备注 F_BOOL bool BOOL NOT NULL Boolean     F_BOOL_NULL bool? BOOL NULL Boolean     F_SBYTE sbyte TINYINT NOT NULL SByte sbyte_   F_SBYTE_NULL sbyte? TINYINT NULL SByte sbyte_   F_BYTE byte TINYINT UNSIGNED NOT NULL Byte     F_BYTE_NULL byte? TINYINT UNSIGNED NULL Byte     F_SHORT short SMALLINT NOT NULL Int16     F_SHORT_NULL short? SMALLINT NULL Int16     F_USHORT ushort SMALLINT UNSIGNED NOT NULL UInt16 ushort_   F_USHORT_NULL ushort? SMALLINT UNSIGNED NULL UInt16 ushort_   F_INT int INT NOT NULL Int32     F_INT_NULL int? INT NULL Int32     F_UINT uint INT UNSIGNED NOT NULL UInt32 uint_   F_UINT_NULL uint? INT UNSIGNED NULL UInt32 uint_   F_LONG long BIGINT NOT NULL Int64     F_LONG_NULL long? BIGINT NULL Int64     F_ULONG ulong BIGINT UNSIGNED NOT NULL UInt64 ulong_   F_ULONG_NULL ulong? BIGINT UNSIGNED NULL UInt64 ulong_   F_FLOAT float FLOAT NOT NULL Single   极值溢出 F_FLOAT_NULL float? FLOAT NULL Single   极值溢出 F_DOUBLE double DOUBLE NOT NULL Double     F_DOUBLE_NULL double? DOUBLE NULL Double     F_DECIMAL decimal DECIMAL NOT NULL Decimal   极值溢出 F_DECIMAL_NULL decimal? DECIMAL NULL Decimal   极值溢出 F_CHAR char CHARACTER NOT NULL String   中文报错 F_CHAR_NULL char? CHARACTER NULL String   中文报错 F_STRING string VARCHAR(50) NOT NULL String     F_STRING_NULL string VARCHAR(50) NULL String     F_DATETIME DateTime DATETIME NOT NULL DateTime     F_DATETIME_NULL DateTime? DATETIME NULL DateTime                

三、 C# vs MSSQL:

C# MSSQL 字段名 类型 库类型 GetFieldType(#) 转换 备注 F_BOOL bool bit NOT NULL Boolean     F_BOOL_NULL bool? bit NULL Boolean     F_SBYTE sbyte smallint NOT NULL Int16 sbyte_short   F_SBYTE_NULL sbyte? smallint NULL Int16 sbyte_short   F_BYTE byte tinyint NOT NUL; Byte     F_BYTE_NULL byte? tinyint NULL Byte     F_SHORT short smallint NOT NULL Int16     F_SHORT_NULL short? smallint NULL Int16     F_USHORT ushort int NOT NULL Int32 ushort_int   F_USHORT_NULL ushort? int NULL Int32 ushort_int   F_INT int int NOT NULL Int32     F_INT_NULL int? int NULL Int32     F_UINT uint bigint NOT NULL Int64 uint_long   F_UINT_NULL uint? bigint NULL Int64 uint_long   F_LONG long bigint NOT NULL Int64     F_LONG_NULL long? bigint NULL Int64     F_ULONG ulong real NOT NULL Single ulong_float   F_ULONG_NULL ulong? real NULL Single ulong_float   F_FLOAT float real NOT NULL Single     F_FLOAT_NULL float? real NULL Single     F_DOUBLE double float NOT NULL Double     F_DOUBLE_NULL double? float NULL Double     F_DECIMAL decimal decimal NOT NULL Decimal   极值溢出 F_DECIMAL_NULL decimal? decimal NULL Decimal   极值溢出 F_CHAR char char(1) NOT NULL String     F_CHAR_NULL char? char(1) NULL String     F_STRING string varchar(50) NOT NULL F_STRING:     F_STRING_NULL string varchar(50) NULL String     F_DATETIME DateTime datetime NOT NULL DateTime   必须介于 1/1/1753 12:00:00 AM 12/31/9999 11:59:59 PM 之间。 F_DATETIME_NULL DateTime? datetime NULL DateTime                

四、C# vs Oracle:

C# Oracle 字段名 类型 库类型 GetFieldType(#) 转换 备注 F_BOOL bool CHAR(1) NOT NULL String bool_string   F_BOOL_NULL bool? CHAR(1) String bool_string   F_SBYTE sbyte NUMBER(3) NOT NULL Int16 sbyte_short   F_SBYTE_NULL sbyte? NUMBER(3) Int16 sbyte_short   F_BYTE byte NUMBER(3) NOT NULL Int16 byte_short   F_BYTE_NULL byte? NUMBER(3) Int16 byte_short   F_SHORT short NUMBER(5) NOT NULL Int32 short_int   F_SHORT_NULL short? NUMBER(5) Int32 short_int   F_USHORT ushort NUMBER(5) NOT NULL Int32 ushort_int   F_USHORT_NULL ushort? NUMBER(5) Int32 ushort_int   F_INT int NUMBER(10) NOT NULL Int64 int_long   F_INT_NULL int? NUMBER(10) Int64 int_long   F_UINT uint NUMBER(10) NOT NULL Int64 uint_long   F_UINT_NULL uint? NUMBER(10) Int64 uint_long   F_LONG long NUMBER(19) NOT NULL Decimal long_decimal   F_LONG_NULL long? NUMBER(19) Decimal long_decimal   F_ULONG ulong NUMBER(19) NOT NULL Decimal ulong_decimal   F_ULONG_NULL ulong? NUMBER(19) Decimal ulong_decimal   F_FLOAT float BINARY_FLOAT NOT NULL Single     F_FLOAT_NULL float? BINARY_FLOAT Single     F_DOUBLE double BINARY_DOUBLE NOT NULL Double   极值溢出 F_DOUBLE_NULL double? BINARY_DOUBLE Double   极值溢出 F_DECIMAL decimal DECIMAL(33,3) NOT NULL Decimal     F_DECIMAL_NULL decimal? DECIMAL(33,3) Decimal     F_CHAR char CHAR(1) NOT NULL String     F_CHAR_NULL char? CHAR(1) String     F_STRING string VARCHAR(50) NOT NULL String   不允许空字符 F_STRING_NULL string VARCHAR(50) String   不允许空字符 F_DATETIME DateTime TIMESTAMP NOT NULL DateTime   大值读取报错 F_DATETIME_NULL DateTime? TIMESTAMP DateTime   大值读取报错            

附、类型转换:

using System;
using System.Collections.Generic;
using System.Text; namespace vJine.Core.ORM { public class TypeConverter { public class sbyte_ /*: IConverter<sbyte>*/ { public static sbyte CONV_Q(object V) { return (sbyte)V; } } public class ushort_ /*: IConverter<ushort>*/ { public static ushort CONV_Q(object V) { return (ushort)V; } } public class uint_ /*: IConverter<uint>*/ { public static uint CONV_Q(object V) { return (uint)V; } } public class ulong_ /*: IConverter<ulong>*/ { public static ulong CONV_Q(object V) { return (ulong)V; } } public class bool_string /*: IConverter<bool>*/ { public static object CONV_I(object V) { if ((bool)V == true) { return "1"; } else { return "0"; } } public static bool CONV_Q(object V) { if ((string)V == "1") { return true; } else { return false; } } } public class sbyte_short /*: IConverter<sbyte>*/ { public static object CONV_I(object V) { return Convert.ToInt16(V); } public static sbyte CONV_Q(object V) { return Convert.ToSByte(V); } } public class byte_short /*: IConverter<byte>*/ { public static object CONV_I(object V) { return Convert.ToInt16(V); } public static byte CONV_Q(object V) { return Convert.ToByte(V); } } public class short_int /*: IConverter<short>*/ { public static object CONV_I(object V) { return Convert.ToInt32(V); } public static short CONV_Q(object V) { return Convert.ToInt16(V); } } public class ushort_int /*: IConverter<ushort>*/ { public static object CONV_I(object V, string Name) { return Convert.ToInt32(V); } public static ushort CONV_Q(object V, string Name) { return Convert.ToUInt16(V); } } public class int_long /*: IConverter<int>*/ { public static object CONV_I(object V) { return Convert.ToInt64(V); } public static int CONV_Q(object V) { return Convert.ToInt32(V); } } public class uint_long /*: IConverter<uint>*/ { public static object CONV_I(object V) { return Convert.ToInt64(V); } public static uint CONV_Q(object V) { return Convert.ToUInt32(V); } } public class long_decimal /*: IConverter<long>*/ { public static object CONV_I(object V) { return decimal.Parse(V.ToString()); } public static long CONV_Q(object V) { return long.Parse(V.ToString()); } } public class ulong_float /*: IConverter<ulong>*/ { public static object CONV_I(object V) { return Convert.ToSingle(V); } public static ulong CONV_Q(object V) { return Convert.ToUInt64(V); } } public class ulong_decimal /*: IConverter<ulong>*/ { public static object CONV_I(object V) { return decimal.Parse(V.ToString()); } public static ulong CONV_Q(object V) { return ulong.Parse(V.ToString()); } } public class float_double /*: IConverter<float>*/ { public static object CONV_I(object V) { return Convert.ToDouble(V); } public static float CONV_Q(object V) { return Convert.ToSingle(V); } } public class char_string /*: IConverter<char>*/ { public static object CONV_I(object V) { if (V is Char) { return V; } else if (V is string) { string chars = (string)V; if (chars == "") { return ''\0''; } else { return chars[0]; } } else { throw new OrmException("Fail To Convert String[{0}] To Char", V); } } public static char CONV_Q(object V) { return ((string)V)[0]; } } public class DateTime_ /*: IConverter<DateTime>*/ { public static object CONV_I(object V) { return V; } public static DateTime CONV_Q(object V) { return (DateTime)V; } } } }
View Code

 

ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)

ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)

        我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。有些是预先生成 (pre-generate) 主键的,如 Oracle 和 PostgreSQL;有些是事后生成 (post-generate) 主键的,如 MySQL 和 SQL Server。但不管是哪种方式,我们都可以用 ibatis 的节点来获取语句所产生的主键。


oracle 例子:

<insert id="insertProduct-ORACLE" parameterClass="product">  

    <selectKey resultClass="int" type="pre" keyProperty="id" >  

        SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  

    </selectKey>  

    insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)  

</insert>

sql-server 例子:

<insert id="insertProduct-MS-SQL" parameterClass="product">  

    insert into PRODUCT (PRD_DESCRIPTIONvalues (#description#)  

    <selectKey resultClass="int" type="post" keyProperty="id" >  

        select @@IDENTITY as value  

    </selectKey>  

</insert>

mysql 例子:

<insert id="insertProduct-MYSQL" parameterClass="product">  

    insert into PRODUCT (PRD_DESCRIPTIONvalues (#description#)  

    <selectKey resultClass="int" type="post" keyProperty="id" >  

        select LAST_INSERT_ID(as value  

    </selectKey>  

</insert>

SQLite 例子:

<insert id="Create" parameterClass="Subject">
      INSERT INTO SUBJECT
      (SubjectName,QuestionCount,IsNowPaper)
      VALUES(#SubjectName#,#QuestionCount#,#IsNowPaper#)
      <selectKey resultClass="int" type="post" property="SubjectId">
        SELECT seq
        FROM sqlite_sequence
        WHERE (name = ''SUBJECT'')
      </selectKey>
    </insert>
注意:name = ''SUBJECT''中SUBJECT为表名称

 

今天关于php连接mysql,mssql,oraclephp连接sqlserver数据库的介绍到此结束,谢谢您的阅读,有关(转)C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)、C# 多数据库组件包,支持 MSSQL+Oracle+MySQL + 用户操作手册 | C/S 开发框架、C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)、ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)等更多相关知识的信息可以在本站进行查询。

本文标签: