访问MySQL数据库用.NET!

复制#region LICENSE   /*   MySQL(和PHP搭配之***组合)DriverCS: An C# driver for MySQL(和PHP搭配之***组合).   Copyright (c) 2002 Manuel Lucas Vi馻s Livschitz.   This file is part of MySQL(和PHP搭配之***组合)DriverCS.   MySQL(和PHP搭配之***组合)DriverCS is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License,访问 or   (at your option) any later version.   MySQL(和PHP搭配之***组合)DriverCS is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with MySQL(和PHP搭配之***组合)DriverCS; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA   */   #endregion   using System;   using System.Data;   using System.Runtime.InteropServices;   namespace MySQL(和PHP搭配之***组合)DriverCS   {   //[StructLayout(LayoutKind.Sequential)]   public class MySQL(和PHP搭配之***组合)_FIELD_FACTORY   {   static string version;   public static IMySQL(和PHP搭配之***组合)_FIELD GetInstance()   {   if (version==null)    {   version = CPrototypes.GetClientInfo();   }   if (version.CompareTo("4.1.2-alpha")>=0)    {   return new MySQL(和PHP搭配之***组合)_FIELD_VERSION_5();   }   else    return new MySQL(和PHP搭配之***组合)_FIELD_VERSION_3();   }   }   public interface IMySQL(和PHP搭配之***组合)_FIELD   {   string Name{get;}   uint Type{get;}   long Max_Length {get;}   }   ///<summary> /// Field descriptor   ///</summary> [StructLayout(LayoutKind.Sequential)]//"3.23.32", 4.0.1-alpha   internal class MySQL(和PHP搭配之***组合)_FIELD_VERSION_3: IMySQL(和PHP搭配之***组合)_FIELD    {   ///<summary> /// Name of column   ///</summary> public string name;    ///<summary> /// Table of column if column was a field   ///</summary> public string table;    //public string org_table; /* Org table name if table was an alias */   //public string db; /* Database for table */   ///<summary> /// def   ///</summary> public string def;    ///<summary> /// length   ///</summary> public long length;    ///<summary> /// max_length   ///</summary> public long max_length;    ///<summary> /// Div flags   ///</summary> public uint flags;    ///<summary> /// Number of decimals in field    ///</summary> public uint decimals;    ///<summary> /// Type of field. Se MySQL(和PHP搭配之***组合)_com.h for types    ///</summary> public uint type;    ///<summary> /// Name   ///</summary> public string Name   {   get{return name;}   }   ///<summary> /// Type   ///</summary> public uint Type   {   get{return type;}   }   ///<summary> /// Max_Length   ///</summary> public long Max_Length   {   get {return max_length;}   }   }    ///<summary> /// Field descriptor   ///</summary> [StructLayout(LayoutKind.Sequential)]   internal class MySQL(和PHP搭配之***组合)_FIELD_VERSION_5: IMySQL(和PHP搭配之***组合)_FIELD    {   ///<summary> /// Name of column    ///</summary> public string name;    ///<summary> /// Original column name, if an alias   ///</summary> public string org_name;    ///<summary> /// Table of column if column was a field   ///</summary> public string table;    ///<summary> /// Org table name if table was an alias   ///</summary> public string org_table;    ///<summary> /// Database for table   ///</summary> public string db;    ///<summary> /// Catalog for table   ///</summary> //public string catalog;    ///<summary> /// def   ///</summary> public string def;    ///<summary> /// length   ///</summary> public long length;    ///<summary> /// max_length   ///</summary> public long max_length;    ///<summary> /// name_length   ///</summary> //public uint name_length;   ///<summary> /// org_name_length   ///</summary> public uint org_name_length;   ///<summary> /// table_length   ///</summary> public uint table_length;   ///<summary> /// org_table_length   ///</summary> public uint org_table_length;   ///<summary> /// db_length   ///</summary> public uint db_length;   ///<summary> /// catalog_length   ///</summary> public uint catalog_length;   ///<summary> /// def_length   ///</summary> public uint def_length;   ///<summary> /// Div flags   ///</summary> public uint flags;    ///<summary> /// Number of decimals in field   ///</summary> public uint decimals;    ///<summary> /// Character set   ///</summary> public uint charsetnr;    ///<summary> /// Type of field. Se MySQL(和PHP搭配之***组合)_com.h for types   ///</summary> public uint type;    ///<summary> /// Name   ///</summary> public string Name   {   get {return name;}   }   ///<summary> /// Type   ///</summary> public uint Type   {   get {return type;}   }   ///<summary> /// Max_Length   ///</summary> public long Max_Length   {   get {return max_length;}   }   }    //[StructLayout(LayoutKind.Explicit)]   public enum enum_field_types    {   FIELD_TYPE_DECIMAL, FIELD_TYPE_TINY,   FIELD_TYPE_SHORT, FIELD_TYPE_LONG,   FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE,   FIELD_TYPE_NULL, FIELD_TYPE_TIMESTAMP,   FIELD_TYPE_LONGLONG,FIELD_TYPE_INT24,   FIELD_TYPE_DATE, FIELD_TYPE_TIME,   FIELD_TYPE_DATETIME, FIELD_TYPE_YEAR,   FIELD_TYPE_NEWDATE,   FIELD_TYPE_ENUM=247,   FIELD_TYPE_SET=248,   FIELD_TYPE_TINY_BLOB=249,   FIELD_TYPE_MEDIUM_BLOB=250,   FIELD_TYPE_LONG_BLOB=251,   FIELD_TYPE_BLOB=252,   FIELD_TYPE_VAR_STRING=253,   FIELD_TYPE_STRING=254,   FIELD_TYPE_GEOMETRY=255 };   ///<summary> /// C prototypes warpper for MySQL(和PHP搭配之***组合)lib.   ///</summary> internal class CPrototypes   {   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_init" )]   unsafe public static extern void* MySQL(和PHP搭配之***组合)_init(void* must_be_null);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_close" )]   unsafe public static extern void MySQL(和PHP搭配之***组合)_close(void* handle);   // BEGIN ADDITION 2004-07-01 BY Alex Seewald   // Enables us to call MySQL(和PHP搭配之***组合)_option to activate compression and timeout   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_options" )]    unsafe public static extern void MySQL(和PHP搭配之***组合)_options(void* MySQL(和PHP搭配之***组合), uint option, uint *value);   // END ADDITION 2004-07-01 By Alex Seewald   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_real_connect" )]  

unsafe public static extern void* MySQL(和PHP搭配之***组合)_real_connect(void* MySQL(和PHP搭配之***组合), string host, string user, string passwd, string db, uint port, string unix_socket, int client_flag);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_query" )]   unsafe public static extern int MySQL(和PHP搭配之***组合)_query(void*MySQL(和PHP搭配之***组合), string query);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_store_result" )]   unsafe public static extern void *MySQL(和PHP搭配之***组合)_store_result(void *MySQL(和PHP搭配之***组合));   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_free_result" )]   unsafe public static extern void MySQL(和PHP搭配之***组合)_free_result(void*result);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_errno" )]   unsafe public static extern uint MySQL(和PHP搭配之***组合)_errno(void*MySQL(和PHP搭配之***组合));   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_error" )]   unsafe public static extern string MySQL(和PHP搭配之***组合)_error(void*MySQL(和PHP搭配之***组合));   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_field_count" )]   unsafe public static extern uint MySQL(和PHP搭配之***组合)_field_count(void*MySQL(和PHP搭配之***组合));   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_affected_rows" )]   unsafe public static extern ulong MySQL(和PHP搭配之***组合)_affected_rows(void*MySQL(和PHP搭配之***组合));   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_num_fields" )]   unsafe public static extern uint MySQL(和PHP搭配之***组合)_num_fields(void*result);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_num_rows" )]   unsafe public static extern ulong MySQL(和PHP搭配之***组合)_num_rows(void *result);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_fetch_field_direct" )]   unsafe public static extern IntPtr MySQL(和PHP搭配之***组合)_fetch_field_direct(void*result, uint fieldnr);   ///<returns>Returns a string that represents the client library version</returns> [DllImport("libMySQL(和PHP搭配之***组合).dll",CharSet=System.Runtime.InteropServices.CharSet.Ansi,   EntryPoint="MySQL(和PHP搭配之***组合)_get_client_info", ExactSpelling=true)]   public static extern string GetClientInfo();   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_fetch_row" )]   unsafe public static extern IntPtr MySQL(和PHP搭配之***组合)_fetch_row(void*result);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_select_db" )]   unsafe public static extern int MySQL(和PHP搭配之***组合)_select_db(void*MySQL(和PHP搭配之***组合),string dbname);   [ DllImport( "libMySQL(和PHP搭配之***组合).dll", EntryPoint="MySQL(和PHP搭配之***组合)_fetch_lengths" )]   unsafe public static extern UInt32 *MySQL(和PHP搭配之***组合)_fetch_lengths(void*result);   }   }    1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.144.145.146.147.148.149.150.151.152.153.154.155.156.157.158.159.160.161.162.163.164.165.166.167.168.169.170.171.172.173.174.175.176.177.178.179.180.181.182.183.184.185.186.187.188.189.190.191.192.193.194.195.196.197.198.199.200.201.202.203.204.205.206.207.208.209.210.211.212.213.214.215.216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231.232.233.234.235.236.237.238.239.240.241.242.243.244.245.246.247.248.249.250.251.252.253.254.255.256.257.258.259.260.261.262.263.264.265.266.267.268.269.270.271.272.273.274.275.276.277.278.279.280.281.282.283.284.285.286.287.

访问MySQL数据库用.NET!

应用开发
上一篇:电脑磁盘数据错误循环的原因及解决方法(解析数据错误循环背后的故事,如何解决这一问题)
下一篇:电脑显示文件大小错误的原因及解决方法(解析文件大小显示错误的常见问题及应对措施)