C#编写一个支持Mysql,Acces,SQL数据库类(支持存储过程) (转)

.数据类型转换工具类: 02. 03. using System; 04.using System.Data; 05.using System.Text.RegularExpressions; 06. 07.namespace EXSystem.Data 08.{ 09. public sealed class ConverValue 10. { 11. public static string ToValidId(string input) 12. { 13. if (!string.IsNullOrEmpty(input)) 14. { 15. string[] strArray = input.Split(new char[] { ',' }); 16. string str = ""; 17. for (int i = 0; i < strArray.GetLength(0); i++) 18. { 19. if (IsNumeric(strArray[i])) 20. { 21. str = str + strArray[i] + ","; 22. } 23. } 24. if (str.Length > 0) 25. { 26. return str.Substring(0, str.Length - 1); 27. } 28. } 29. return "0"; 30. } 31. /// 32. /// 判断字符串是否由数字组成 33. /// 34. public static bool IsNumeric(string s) 35. { 36. if (s.Trim() != null || !string.IsNullOrEmpty(s.Trim())) 37. { 38. string pattern = @"^/-?[0-9]+$"; 39. return Regex.IsMatch(s.Trim(), pattern); 40. } 41. else 42. { 43. return false; 44. } 45. } 46. public static int ObjectToInt32(object value) 47. { 48. int result = 0; 49. if ((!object.Equals(value, null) && !object.Equals(value, DBNull.Value)) && !int.TryParse(value.ToString(), out result)) 50. { 51. result = 0; 52. } 53. return result; 54. } 55. public static bool IsDBNull(IDataReader Reader, string name) 56. { 57. bool ok = false; 58. if (string.IsNullOrEmpty(name)) 59. { 60. ok = true; 61. } 62. else 63. { 64. try 65. { 66. ok = Reader.IsDBNull(Reader.GetOrdinal(name)); 67. } 68. catch 69. { 70. ok = true; 71. } 72. 73. } 74. return ok; 75. } 76. public static string GetString(IDataReader Reader, string name) 77. { 78. string str = string.Empty; 79. if (!IsDBNull(Reader, name)) 80. { 81. str = Reader.GetString(Reader.GetOrdinal(name)); 82. } 83. return str; 84. } 85. public static int GetInt32(IDataReader Reader, string name) 86. { 87. if (IsDBNull(Reader, name)) 88. { 89. return 0; 90. } 91. else 92. { 93. return Reader.GetInt32(Reader.GetOrdinal(name)); 94. } 95. } 96. public static DateTime GetDateTime(IDataReader Reader, string name) 97. { 98. if (IsDBNull(Reader, name)) 99. { 100. return DateTime.Now; 101. } 102. return Reader.GetDateTime(Reader.GetOrdinal(name)); 103. } 104. /// 105. /// 将对象转换为float型 106. /// 107. /// 要转换的字符串 108. /// 缺省值 109. /// 转换后的int类型结果 110. private static float StrToFloat(object strValue, float defValue) 111. { 112. if ((strValue == null) || (strValue.ToString().Length > 10)) 113. { 114. return defValue; 115. } 116. 117. float intValue = defValue; 118. if (strValue != null) 119. { 120. bool IsFloat = Regex.IsMatch(strValue.ToString(), @"^([-]|[0-9])[0-9]*(/./w*)?$"); 121. if (IsFloat) 122. { 123. intValue = Convert.ToSingle(strValue); 124. } 125. } 126. return intValue; 127. } 128. /// 129. /// 将对象转换为Int32类型 130. /// 131. /// 要转换的字符串 132. /// 缺省值 133. /// 转换后的int类型结果 134. private static int StrToInt(object Expression, int defValue) 135. { 136. 137. if (Expression != null) 138. { 139. string str = Expression.ToString(); 140. if (str.Length > 0 && str.Length <= 11 && Regex.IsMatch(str, @"^[-]?[0-9]*$")) 141. { 142. if ((str.Length < 10) || (str.Length == 10 && str[0] == '1') || (str.Length == 11 && str[0] == '-' && str[1] == '1')) 143. { 144. return Convert.ToInt32(str); 145. } 146. } 147. } 148. return defValue; 149. } 150. /// 151. /// 检查一个字符串是否可以转化为日期,一般用于验证用户输入日期的合法性。 152. /// 153. /// 需验证的字符串。 154. /// 是否可以转化为日期的bool值。 155. private static bool IsDateTime(string _value) 156. { 157. if (string.IsNullOrEmpty(_value)) 158. { 159. return false; 160. } 161. else 162. { 163. try 164. { 165. DateTime d = DateTime.Parse(_value); 166. return true; 167. } 168. catch (FormatException) 169. { 170. return false; 171. } 172. } 173. } 174. /// 175. /// 返回标准时间格式string 176. /// 177. private static string GetDateTime() 178. { 179. return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); 180. } 181. /// 182. /// 返回标准时间 183. /// 184. /// 185. /// 186. private static string GetStandardDateTime(string fDateTime) 187. { 188. if (IsDateTime(fDateTime)) 189. { 190. return Convert.ToDateTime(fDateTime).ToString("yyyy-MM-dd HH:mm:ss"); 191. } 192. else 193. { 194. return GetDateTime(); 195. } 196. } 197. /// 198. /// 转换某些值符合数据库能够接受的值 199. /// 200. /// 201. /// 202. /// 203. public static object ToStrValue(DbType dbType, object Value) 204. { 205. object _Value = null; 206. if (Value != null) 207. { 208. switch (dbType) 209. { 210. case DbType.Int32: 211. { 212. _Value = (object)StrToInt(Value, 0); 213. break; 214. } 215. case DbType.Double: 216. { 217. _Value = (object)StrToFloat(Value, 0); 218. break; 219. } 220. case DbType.DateTime: 221. { 222. _Value = (object)GetStandardDateTime(Value.ToString()); 223. break; 224. } 225. default: 226. _Value = Value; 227. break; 228. } 229. } 230. return _Value; 231. } 232. } 233.} 数据类型转换工具类: using System; using System.Data; using System.Text.RegularExpressions; namespace EXSystem.Data { public sealed class ConverValue { public static string ToValidId(string input) { if (!string.IsNullOrEmpty(input)) { string[] strArray = input.Split(new char[] { ',' }); string str = ""; for (int i = 0; i < strArray.GetLength(0); i++) { if (IsNumeric(strArray[i])) { str = str + strArray[i] + ","; } } if (str.Length > 0) { return str.Substring(0, str.Length - 1); } } return "0"; } /// /// 判断字符串是否由数字组成 /// public static bool IsNumeric(string s) { if (s.Trim() != null || !string.IsNullOrEmpty(s.Trim())) { string pattern = @"^/-?[0-9]+$"; return Regex.IsMatch(s.Trim(), pattern); } else { return false; } } public static int ObjectToInt32(object value) { int result = 0; if ((!object.Equals(value, null) && !object.Equals(value, DBNull.Value)) && !int.TryParse(value.ToString(), out result)) { result = 0; } return result; } public static bool IsDBNull(IDataReader Reader, string name) { bool ok = false; if (string.IsNullOrEmpty(name)) { ok = true; } else { try { ok = Reader.IsDBNull(Reader.GetOrdinal(name)); } catch { ok = true; } } return ok; } public static string GetString(IDataReader Reader, string name) { string str = string.Empty; if (!IsDBNull(Reader, name)) { str = Reader.GetString(Reader.GetOrdinal(name)); } return str; } public static int GetInt32(IDataReader Reader, string name) { if (IsDBNull(Reader, name)) { return 0; } else { return Reader.GetInt32(Reader.GetOrdinal(name)); } } public static DateTime GetDateTime(IDataReader Reader, string name) { if (IsDBNull(Reader, name)) { return DateTime.Now; } return Reader.GetDateTime(Reader.GetOrdinal(name)); } /// /// 将对象转换为float型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 private static float StrToFloat(object strValue, float defValue) { if ((strValue == null) || (strValue.ToString().Length > 10)) { return defValue; } float intValue = defValue; if (strValue != null) { bool IsFloat = Regex.IsMatch(strValue.ToString(), @"^([-]|[0-9])[0-9]*(/./w*)?$"); if (IsFloat) { intValue = Convert.ToSingle(strValue); } } return intValue; } /// /// 将对象转换为Int32类型 /// /// 要转换的字符串 /// 缺省值 /// 转换后的int类型结果 private static int StrToInt(object Expression, int defValue) { if (Expression != null) { string str = Expression.ToString(); if (str.Length > 0 && str.Length <= 11 && Regex.IsMatch(str, @"^[-]?[0-9]*$")) { if ((str.Length < 10) || (str.Length == 10 && str[0] == '1') || (str.Length == 11 && str[0] == '-' && str[1] == '1')) { return Convert.ToInt32(str); } } } return defValue; } /// /// 检查一个字符串是否可以转化为日期,一般用于验证用户输入日期的合法性。 /// /// 需验证的字符串。 /// 是否可以转化为日期的bool值。 private static bool IsDateTime(string _value) { if (string.IsNullOrEmpty(_value)) { return false; } else { try { DateTime d = DateTime.Parse(_value); return true; } catch (FormatException) { return false; } } } /// /// 返回标准时间格式string /// private static string GetDateTime() { return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } /// /// 返回标准时间 /// /// /// private static string GetStandardDateTime(string fDateTime) { if (IsDateTime(fDateTime)) { return Convert.ToDateTime(fDateTime).ToString("yyyy-MM-dd HH:mm:ss"); } else { return GetDateTime(); } } /// /// 转换某些值符合数据库能够接受的值 /// /// /// /// public static object ToStrValue(DbType dbType, object Value) { object _Value = null; if (Value != null) { switch (dbType) { case DbType.Int32: { _Value = (object)StrToInt(Value, 0); break; } case DbType.Double: { _Value = (object)StrToFloat(Value, 0); break; } case DbType.DateTime: { _Value = (object)GetStandardDateTime(Value.ToString()); break; } default: _Value = Value; break; } } return _Value; } } } IDbProvider接口: using System; using System.Xml; using System.Data; using System.Data.Common; namespace EXSystem.Data { public interface IDbProvider { DbConnection CreateConnection(string ConnectionString); DbDataAdapter CreateDataAdapter(); string GetLastIdSql(); //XmlReader ExecuteXmlReader(DbCommand command); DbParameter GetParameter(string ParameterName, DbType Type, int Size); string ToParameterName(string ParamName); string ToSql(string Sql); } } IDbProvider接口: using System; using System.Xml; using System.Data; using System.Data.Common; namespace EXSystem.Data { public interface IDbProvider { DbConnection CreateConnection(string ConnectionString); DbDataAdapter CreateDataAdapter(); string GetLastIdSql(); //XmlReader ExecuteXmlReader(DbCommand command); DbParameter GetParameter(string ParameterName, DbType Type, int Size); string ToParameterName(string ParamName); string ToSql(string Sql); } } view plaincopy to clipboardprint? 01.Access类: 02.using System; 03.using System.Data; 04.using System.Data.Common; 05.using System.Data.OleDb; 06.using System.Configuration; 07.using System.Web; 08. 09.namespace EXSystem.Data 10.{ 11. public class Access : IDbProvider 12. { 13. private readonly string getConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" + HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["AccessString"].ToString()); 14. public Access() 15. { } 16. #region IDbProvider 成员 17. 18. public DbConnection CreateConnection(string ConnectionString) 19. { 20. if (string.IsNullOrEmpty(ConnectionString)) 21. { 22. return new OleDbConnection(this.getConnectionString); 23. } 24. else 25. { 26. return new OleDbConnection(ConnectionString); 27. } 28. } 29. public DbDataAdapter CreateDataAdapter() 30. { 31. return new OleDbDataAdapter(); 32. } 33. 34. public string GetLastIdSql() 35. { 36. return "SELECT @@IDENTITY"; 37. } 38. 39. 40. public DbParameter GetParameter(string ParameterName, DbType Type, int Size) 41. { 42. OleDbParameter param; 43. 44. if (Size > 0) 45. param = new OleDbParameter(ToParameterName(ParameterName), ToDbType(Type), Size); 46. else 47. param = new OleDbParameter(ToParameterName(ParameterName), ToDbType(Type)); 48. 49. return param; 50. } 51. private OleDbType ToDbType(DbType setType) 52. { 53. OleDbType ReturnType = 0; 54. switch (setType) 55. { 56. case DbType.AnsiString: 57. { 58. ReturnType = OleDbType.VarChar; 59. break; 60. } 61. 62. case DbType.Binary: 63. { 64. ReturnType = OleDbType.VarBinary; 65. break; 66. } 67. 68. case DbType.Byte: 69. { 70. ReturnType = OleDbType.UnsignedTinyInt; 71. break; 72. } 73. 74. case DbType.Boolean: 75. { 76. ReturnType = OleDbType.Boolean; 77. break; 78. } 79. 80. case DbType.Currency: 81. { 82. ReturnType = OleDbType.Currency; 83. break; 84. } 85. 86. case DbType.Date: 87. { 88. ReturnType = OleDbType.DBDate; 89. break; 90. } 91. 92. case DbType.DateTime: 93. { 94. ReturnType = OleDbType.DBTimeStamp; 95. break; 96. } 97. 98. case DbType.Decimal: 99. { 100. ReturnType = OleDbType.Decimal; 101. break; 102. } 103. 104. case DbType.Double: 105. { 106. ReturnType = OleDbType.Double; 107. break; 108. } 109. 110. case DbType.Guid: 111. { 112. ReturnType = OleDbType.Guid; 113. break; 114. } 115. 116. case DbType.Int16: 117. { 118. ReturnType = OleDbType.SmallInt; 119. break; 120. } 121. 122. case DbType.Int32: 123. { 124. ReturnType = OleDbType.Integer; 125. break; 126. } 127. 128. case DbType.Int64: 129. { 130. ReturnType = OleDbType.BigInt; 131. break; 132. } 133. 134. case DbType.Object: 135. { 136. ReturnType = OleDbType.Variant; 137. break; 138. } 139. 140. case DbType.SByte: 141. { 142. ReturnType = OleDbType.TinyInt; 143. break; 144. } 145. 146. case DbType.Single: 147. { 148. ReturnType = OleDbType.Single; 149. break; 150. } 151. 152. case DbType.String: 153. { 154. ReturnType = OleDbType.VarWChar; 155. break; 156. } 157. 158. case DbType.Time: 159. { 160. ReturnType = OleDbType.DBTime; 161. break; 162. } 163. 164. case DbType.UInt16: 165. { 166. ReturnType = OleDbType.UnsignedSmallInt; 167. break; 168. } 169. 170. case DbType.UInt32: 171. { 172. ReturnType = OleDbType.UnsignedInt; 173. break; 174. } 175. 176. case DbType.UInt64: 177. { 178. ReturnType = OleDbType.UnsignedBigInt; 179. break; 180. } 181. 182. case DbType.VarNumeric: 183. { 184. ReturnType = OleDbType.VarNumeric; 185. break; 186. } 187. 188. case DbType.AnsiStringFixedLength: 189. { 190. ReturnType = OleDbType.Char; 191. break; 192. } 193. 194. case DbType.StringFixedLength: 195. { 196. ReturnType = OleDbType.WChar; 197. break; 198. } 199. 200. case DbType.Xml: 201. { 202. ReturnType = OleDbType.IUnknown; 203. break; 204. } 205. 206. } 207. return ReturnType; 208. } 209. public string ToParameterName(string ParamName) 210. { 211. string sParamName = string.Empty; 212. if (ParamName != string.Empty) 213. { 214. sParamName = ParamName.Replace("?", "@"); 215. } 216. return sParamName; 217. } 218. 219. public string ToSql(string Sql) 220. { 221. string sSql = string.Empty; 222. if (!string.IsNullOrEmpty(Sql)) 223. { 224. sSql = Sql; 225. } 226. return sSql; 227. } 228. 229. #endregion 230. 231. } 232.} Access类: using System; using System.Data; using System.Data.Common; using System.Data.OleDb; using System.Configuration; using System.Web; namespace EXSystem.Data { public class Access : IDbProvider { private readonly string getConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" + HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["AccessString"].ToString()); public Access() { } #region IDbProvider 成员 public DbConnection CreateConnection(string ConnectionString) { if (string.IsNullOrEmpty(ConnectionString)) { return new OleDbConnection(this.getConnectionString); } else { return new OleDbConnection(ConnectionString); } } public DbDataAdapter CreateDataAdapter() { return new OleDbDataAdapter(); } public string GetLastIdSql() { return "SELECT @@IDENTITY"; } public DbParameter GetParameter(string ParameterName, DbType Type, int Size) { OleDbParameter param; if (Size > 0) param = new OleDbParameter(ToParameterName(ParameterName), ToDbType(Type), Size); else param = new OleDbParameter(ToParameterName(ParameterName), ToDbType(Type)); return param; } private OleDbType ToDbType(DbType setType) { OleDbType ReturnType = 0; switch (setType) { case DbType.AnsiString: { ReturnType = OleDbType.VarChar; break; } case DbType.Binary: { ReturnType = OleDbType.VarBinary; break; } case DbType.Byte: { ReturnType = OleDbType.UnsignedTinyInt; break; } case DbType.Boolean: { ReturnType = OleDbType.Boolean; break; } case DbType.Currency: { ReturnType = OleDbType.Currency; break; } case DbType.Date: { ReturnType = OleDbType.DBDate; break; } case DbType.DateTime: { ReturnType = OleDbType.DBTimeStamp; break; } case DbType.Decimal: { ReturnType = OleDbType.Decimal; break; } case DbType.Double: { ReturnType = OleDbType.Double; break; } case DbType.Guid: { ReturnType = OleDbType.Guid; break; } case DbType.Int16: { ReturnType = OleDbType.SmallInt; break; } case DbType.Int32: { ReturnType = OleDbType.Integer; break; } case DbType.Int64: { ReturnType = OleDbType.BigInt; break; } case DbType.Object: { ReturnType = OleDbType.Variant; break; } case DbType.SByte: { ReturnType = OleDbType.TinyInt; break; } case DbType.Single: { ReturnType = OleDbType.Single; break; } case DbType.String: { ReturnType = OleDbType.VarWChar; break; } case DbType.Time: { ReturnType = OleDbType.DBTime; break; } case DbType.UInt16: { ReturnType = OleDbType.UnsignedSmallInt; break; } case DbType.UInt32: { ReturnType = OleDbType.UnsignedInt; break; } case DbType.UInt64: { ReturnType = OleDbType.UnsignedBigInt; break; } case DbType.VarNumeric: { ReturnType = OleDbType.VarNumeric; break; } case DbType.AnsiStringFixedLength: { ReturnType = OleDbType.Char; break; } case DbType.StringFixedLength: { ReturnType = OleDbType.WChar; break; } case DbType.Xml: { ReturnType = OleDbType.IUnknown; break; } } return ReturnType; } public string ToParameterName(string ParamName) { string sParamName = string.Empty; if (ParamName != string.Empty) { sParamName = ParamName.Replace("?", "@"); } return sParamName; } public string ToSql(string Sql) { string sSql = string.Empty; if (!string.IsNullOrEmpty(Sql)) { sSql = Sql; } return sSql; } #endregion } } view plaincopy to clipboardprint? 01.SqlServer类: 02.using System; 03.using System.Data; 04.using System.Data.Common; 05.using System.Data.SqlClient; 06.using System.Configuration; 07. 08.namespace EXSystem.Data 09.{ 10. public class SqlServer : IDbProvider 11. { 12. private readonly string getConnectionString = ConfigurationManager.AppSettings["SqlServerString"].ToString(); 13. public SqlServer() 14. { } 15. 16. #region IDbProvider 成员 17. 18. public DbConnection CreateConnection(string ConnectionString) 19. { 20. if (string.IsNullOrEmpty(ConnectionString)) 21. { 22. return new SqlConnection(this.getConnectionString); 23. } 24. else 25. { 26. return new SqlConnection(ConnectionString); 27. } 28. } 29. 30. public DbDataAdapter CreateDataAdapter() 31. { 32. return new SqlDataAdapter(); 33. } 34. 35. public string GetLastIdSql() 36. { 37. return "SELECT SCOPE_IDENTITY()"; 38. } 39. 40. public DbParameter GetParameter(string ParameterName, DbType Type, int Size) 41. { 42. SqlParameter param; 43. 44. if (Size > 0) 45. param = new SqlParameter(ParameterName, ToDbType(Type), Size); 46. else 47. param = new SqlParameter(ParameterName, ToDbType(Type)); 48. 49. return param; 50. } 51. private SqlDbType ToDbType(DbType settype) 52. { 53. SqlDbType ReturnType = 0; 54. switch (settype) 55. { 56. case DbType.AnsiString: 57. ReturnType = SqlDbType.VarChar; 58. break; 59. 60. case DbType.Binary: 61. ReturnType = SqlDbType.VarBinary; 62. break; 63. case DbType.Byte: 64. ReturnType = SqlDbType.TinyInt; 65. break; 66. case DbType.Boolean: 67. ReturnType = SqlDbType.Bit; 68. break; 69. case DbType.Currency: 70. ReturnType = SqlDbType.Money; 71. break; 72. case DbType.Date: 73. case DbType.DateTime: 74. ReturnType = SqlDbType.DateTime; 75. break; 76. case DbType.Decimal: 77. ReturnType = SqlDbType.Decimal; 78. break; 79. case DbType.Double: 80. ReturnType = SqlDbType.Float; 81. break; 82. case DbType.Guid: 83. ReturnType = SqlDbType.UniqueIdentifier; 84. break; 85. case DbType.Int16: 86. ReturnType = SqlDbType.SmallInt; 87. break; 88. case DbType.Int32: 89. ReturnType = SqlDbType.Int; 90. break; 91. case DbType.Int64: 92. ReturnType = SqlDbType.BigInt; 93. break; 94. case DbType.Object: 95. ReturnType = SqlDbType.Variant; 96. break; 97. case DbType.Single: 98. ReturnType = SqlDbType.Real; 99. break; 100. case DbType.String: 101. ReturnType = SqlDbType.VarChar; 102. break; 103. case DbType.Time: 104. ReturnType = SqlDbType.DateTime; 105. break; 106. case DbType.AnsiStringFixedLength: 107. ReturnType = SqlDbType.Text; 108. break; 109. case DbType.StringFixedLength: 110. ReturnType = SqlDbType.Text; 111. break; 112. case DbType.Xml: 113. ReturnType = SqlDbType.Xml; 114. break; 115. } 116. return ReturnType; 117. } 118. public string ToParameterName(string ParamName) 119. { 120. string sParamName = string.Empty; 121. if (ParamName != string.Empty) 122. { 123. sParamName = ParamName.Replace("?", "@"); 124. } 125. return sParamName; 126. } 127. 128. public string ToSql(string Sql) 129. { 130. string sSql = string.Empty; 131. if (!string.IsNullOrEmpty(Sql)) 132. { 133. sSql = Sql.Replace("[", "").Replace("]", "").Replace("?","@"); 134. } 135. return sSql; 136. } 137. 138. #endregion 139. } 140.} SqlServer类: using System; using System.Data; using System.Data.Common; using System.Data.SqlClient; using System.Configuration; namespace EXSystem.Data { public class SqlServer : IDbProvider { private readonly string getConnectionString = ConfigurationManager.AppSettings["SqlServerString"].ToString(); public SqlServer() { } #region IDbProvider 成员 public DbConnection CreateConnection(string ConnectionString) { if (string.IsNullOrEmpty(ConnectionString)) { return new SqlConnection(this.getConnectionString); } else { return new SqlConnection(ConnectionString); } } public DbDataAdapter CreateDataAdapter() { return new SqlDataAdapter(); } public string GetLastIdSql() { return "SELECT SCOPE_IDENTITY()"; } public DbParameter GetParameter(string ParameterName, DbType Type, int Size) { SqlParameter param; if (Size > 0) param = new SqlParameter(ParameterName, ToDbType(Type), Size); else param = new SqlParameter(ParameterName, ToDbType(Type)); return param; } private SqlDbType ToDbType(DbType settype) { SqlDbType ReturnType = 0; switch (settype) { case DbType.AnsiString: ReturnType = SqlDbType.VarChar; break; case DbType.Binary: ReturnType = SqlDbType.VarBinary; break; case DbType.Byte: ReturnType = SqlDbType.TinyInt; break; case DbType.Boolean: ReturnType = SqlDbType.Bit; break; case DbType.Currency: ReturnType = SqlDbType.Money; break; case DbType.Date: case DbType.DateTime: ReturnType = SqlDbType.DateTime; break; case DbType.Decimal: ReturnType = SqlDbType.Decimal; break; case DbType.Double: ReturnType = SqlDbType.Float; break; case DbType.Guid: ReturnType = SqlDbType.UniqueIdentifier; break; case DbType.Int16: ReturnType = SqlDbType.SmallInt; break; case DbType.Int32: ReturnType = SqlDbType.Int; break; case DbType.Int64: ReturnType = SqlDbType.BigInt; break; case DbType.Object: ReturnType = SqlDbType.Variant; break; case DbType.Single: ReturnType = SqlDbType.Real; break; case DbType.String: ReturnType = SqlDbType.VarChar; break; case DbType.Time: ReturnType = SqlDbType.DateTime; break; case DbType.AnsiStringFixedLength: ReturnType = SqlDbType.Text; break; case DbType.StringFixedLength: ReturnType = SqlDbType.Text; break; case DbType.Xml: ReturnType = SqlDbType.Xml; break; } return ReturnType; } public string ToParameterName(string ParamName) { string sParamName = string.Empty; if (ParamName != string.Empty) { sParamName = ParamName.Replace("?", "@"); } return sParamName; } public string ToSql(string Sql) { string sSql = string.Empty; if (!string.IsNullOrEmpty(Sql)) { sSql = Sql.Replace("[", "").Replace("]", "").Replace("?","@"); } return sSql; } #endregion } } view plaincopy to clipboardprint? 01.MySql类(需引用MySql.Data.dll) 02.using System; 03.using System.Data; 04.using System.Data.Common; 05.using MySql.Data.MySqlClient; 06.using System.Configuration; 07. 08.namespace EXSystem.Data 09.{ 10. public class MySql :IDbProvider 11. { 12. private readonly string getConnectionString = ConfigurationManager.AppSettings["MySqlString"].ToString(); 13. #region IDbProvider 成员 14. 15. public MySql() 16. { } 17. public DbConnection CreateConnection(string ConnectionString) 18. { 19. if (string.IsNullOrEmpty(ConnectionString)) 20. { 21. return new MySqlConnection(this.getConnectionString); 22. } 23. else 24. { 25. return new MySqlConnection(ConnectionString); 26. } 27. } 28. 29. public DbDataAdapter CreateDataAdapter() 30. { 31. return new MySqlDataAdapter(); 32. } 33. 34. public string GetLastIdSql() 35. { 36. return "SELECT SCOPE_IDENTITY()"; 37. } 38. 39. public DbParameter GetParameter(string ParameterName, DbType Type, int Size) 40. { 41. MySqlParameter param; 42. 43. if (Size > 0) 44. param = new MySqlParameter(ToParameterName(ParameterName), ToDbType(Type), Size); 45. else 46. param = new MySqlParameter(ToParameterName(ParameterName), ToDbType(Type)); 47. 48. return param; 49. } 50. private MySqlDbType ToDbType(DbType dbType) 51. { 52. MySqlDbType ReturnType = 0; 53. switch (dbType) 54. { 55. case DbType.AnsiString: 56. case DbType.Guid: 57. case DbType.String: 58. { 59. ReturnType = MySqlDbType.VarString; 60. break; 61. } 62. 63. case DbType.Byte: 64. case DbType.Boolean: 65. { 66. ReturnType = MySqlDbType.UByte; 67. break; 68. } 69. 70. case DbType.Currency: 71. case DbType.Decimal: 72. { 73. ReturnType = MySqlDbType.Decimal; 74. break; 75. } 76. 77. case DbType.Date: 78. { 79. ReturnType = MySqlDbType.Date; 80. break; 81. } 82. 83. case DbType.DateTime: 84. { 85. ReturnType = MySqlDbType.Datetime; 86. break; 87. } 88. 89. case DbType.Double: 90. { 91. ReturnType = MySqlDbType.Double; 92. break; 93. } 94. 95. case DbType.Int16: 96. { 97. ReturnType = MySqlDbType.Int16; 98. break; 99. } 100. 101. case DbType.Int32: 102. { 103. ReturnType = MySqlDbType.Int32; 104. break; 105. } 106. 107. case DbType.Int64: 108. { 109. ReturnType = MySqlDbType.Int64; 110. break; 111. } 112. 113. case DbType.SByte: 114. { 115. ReturnType = MySqlDbType.Byte; 116. break; 117. } 118. 119. case DbType.Single: 120. { 121. ReturnType = MySqlDbType.Float; 122. break; 123. } 124. 125. case DbType.Time: 126. { 127. ReturnType = MySqlDbType.Time; 128. break; 129. } 130. 131. case DbType.UInt16: 132. { 133. ReturnType = MySqlDbType.UInt16; 134. break; 135. } 136. 137. case DbType.UInt32: 138. { 139. ReturnType = MySqlDbType.UInt32; 140. break; 141. } 142. 143. case DbType.UInt64: 144. { 145. ReturnType = MySqlDbType.UInt64; 146. break; 147. } 148. 149. case DbType.AnsiStringFixedLength: 150. case DbType.StringFixedLength: 151. { 152. ReturnType = MySqlDbType.String; 153. break; 154. } 155. default: 156. { 157. ReturnType = MySqlDbType.Blob; 158. break; 159. } 160. } 161. return ReturnType; 162. } 163. 164. public string ToParameterName(string ParamName) 165. { 166. string sParamName = string.Empty; 167. if (ParamName != string.Empty) 168. { 169. sParamName = ParamName.Replace("@", "?"); 170. } 171. return sParamName; 172. } 173. 174. public string ToSql(string Sql) 175. { 176. string sSql = string.Empty; 177. if (!string.IsNullOrEmpty(Sql)) 178. { 179. sSql = Sql.Replace("[", "").Replace("]", "").Replace("@","?"); 180. } 181. return sSql; 182. } 183. 184. #endregion 185. 186. 187. 188. } 189.} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hk75857838/archive/2009/07/18/4359268.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值