好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

使用C#访问数据库入门

#define WIN 2 // #define NET 3 // ********ACCESS要开类型和版本两个****** 4 // #define ACCESS 5 // #define ACCESS_2003 6 // #define ACCESS_2010 7 // ********EXCEL开一个具体版本就行了****** 8 // (#define EXCEL) 9 // #define EXCEL_2010 10 // ******************************** 11 #define SQLSERVER 12 // (sql2000测试通过) 13 // ******************************* 14 // #define MYSQL 15 16 using System; 17 using System.Collections.Generic; 18 using System.Linq; 19 using System.Text; 20 using System.Data; 21 using System.Data.OleDb; 22 using System.Data.SqlClient; 23 // using MySql.Data.MySqlClient; 24 #if NET 25 using System.Web; 26 #endif 27 28 namespace HC 29 { 30 // 操作access等数据库的类 31 class Hc_db 32 { 33 public Hc_db() 34 { 35 } 36 #if SQLSERVER 37 static SqlConnection createConn() 38 #elif MYSQL 39 static MySqlConnection createConn() 40 #else 41 static OleDbConnection createConn() 42 #endif 43 { 44 #if SQLSERVER 45 string s1 = " server=(localdb)\\mssqllocaldb;initial catalog=d1;user ID=sa;password=123456; " ; 46 #endif 47 #if ACCESS_2003 48 string s1 = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " ; 49 #endif 50 #if ACCESS_2010 51 string s1 = " Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " ; 52 #endif 53 #if ACCESS 54 #if NET 55 string s2 =@HttpContext.Current.Server.MapPath( @" ~/data/d1.accdb " ); 56 #endif 57 #if WIN 58 string s2 = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)+ @" \data\yangbiao.mdb " ; 59 #endif 60 #endif 61 62 #if EXCEL_2010 63 string s1 = " Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " ; 64 #if NET 65 string s2 =@HttpContext.Current.Server.MapPath( @" ~/data/e1.xlsx " )+ " ;Extended Properties=‘Excel 12.0;HDR=YES‘ " ; // HDR=YES表示有标题 66 #endif 67 #if WIN 68 string s2 =System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)+ @" \data\e1.xlsx " + " ;Extended Properties=‘Excel 12.0;HDR=YES‘ " ; // HDR=YES表示有标题 69 #endif 70 // 说明: 71 // 若要引用完全使用的工作表的范围,请指定后面跟有美元符号的工作表名称。例如: 72 // select * from [Sheet1$] 73 // 若要引用工作表上的特定地址范围,请指定后面跟有美元符号和该范围的工作表名称。例如: 74 // select * from [Sheet1$A1:B10] 75 // 关于IMEX: 76 // 若为 0,则为输出模式,此情况下只能用作写入 Excel; 77 // 若为 1,则为输入模式,此情况下只能用作读取 Excel,并且始终将 Excel 数据作为文本类型读取; 78 // 若为 2,则为连接模式,此情况下既可用作写入、也可用作读取。 79 // 所以若要读取混合数据类型,应该将 IMEX 设置为 1;若误设置为 0,则读取不到任何行;若误设置为 2 或省略,则有些数据读取出来是空白。 80 // 注意:输出模式对应写入、输入模式对应读取。 81 #endif 82 #if MYSQL 83 string s1 = " Database=ipt_authd;Data Source=10.10.XXX.XXX;User Id=XXXX;allow zero datetime=true " ; 84 // 标准写法:myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"; 85 #endif 86 #if SQLSERVER 87 SqlConnection conn = new SqlConnection(s1); 88 #elif MYSQL 89 MySqlConnection conn = new MySqlConnection(s1); 90 #else 91 OleDbConnection conn = new OleDbConnection(s1+ s2); 92 #endif 93 return conn; 94 } 95 96 public static DataTable get_datatable( string s1) 97 { 98 #if SQLSERVER 99 SqlConnection myconn = Hc_db.createConn(); 100 SqlDataAdapter myda = new SqlDataAdapter(s1, myconn); 101 #elif MYSQL 102 MySqlConnection myconn = Hc_db.createConn(); 103 MySqlDataAdapter myda = new MySqlDataAdapter(s1, myconn); 104 #else 105 OleDbConnection myconn = Hc_db.createConn(); 106 OleDbDataAdapter myda = new OleDbDataAdapter(s1, myconn); 107 #endif 108 DataSet myds = new DataSet(); 109 try 110 { 111 myconn.Open(); 112 myda.Fill(myds, " No1 " ); 113 myconn.Close(); 114 // myconn.Dispose(); 115 return myds.Tables[ " No1 " ]; 116 } 117 catch (Exception e1) 118 { 119 throw (e1); 120 } 121 } 122 public static int do_nonquery( string s1) 123 { 124 #if SQLSERVER 125 SqlConnection myconn = Hc_db.createConn(); 126 SqlCommand mycomm = new SqlCommand(s1, myconn); 127 #elif MYSQL 128 MySqlConnection myconn = Hc_db.createConn(); 129 MySqlCommand mycomm = new MySqlCommand(s1, myconn); 130 #else 131 OleDbConnection myconn = Hc_db.createConn(); 132 OleDbCommand mycomm = new OleDbCommand(s1, myconn); 133 #endif 134 try 135 { 136 int c; 137 myconn.Open(); 138 c = mycomm.ExecuteNonQuery(); 139 myconn.Close(); 140 // myconn.Dispose(); 141 return c; 142 } 143 catch (Exception e1) 144 { 145 // HttpContext.Current.Response.Write("<script language=‘javascript‘ defer>alert(‘" + e1.ToString() + "‘);</script>"); 146 throw (e1); 147 // return false; 148 } 149 } 150 } 151 } 152 // INSERT INTO 表 [(字段1[,字段2[, ...]])] 153 /// /VALUES (值1[,值2[, ...]) 154 // string str_sql = "insert into myt1(姓名,性别,年龄) values(‘"+textBox2.Text+"‘,‘"+textBox3.Text+"‘,"+textBox4.Text+")";

 

以上代码可用作控制台下操作localdb数据库。对于其他的sqlserver,修改第45行信息。

在mvc等web环境下使用,修改前两行即可。

数据库内容如下:

 

 控制台程序如下:

  static   void  Main( string  [] args)
        {
            DataTable dt;
              string   sql;
            sql  =  "  select * from t1  "  ;
            dt  =  Hc_db.get_datatable(sql);
              for  ( int  i =  0 ; i < dt.Rows.Count; i++ )
            {
                  for  ( int  j =  0 ; j < dt.Columns.Count; j++ )
                {
                    Console.Write(dt.Rows[i][j].ToString() + "  \t  "  );
                }
                Console.WriteLine(); ;
            }
            Hc_db.do_nonquery(  "  delete from t1 where xm=‘ls‘  "  );
            dt  =  Hc_db.get_datatable(sql);
            Console.WriteLine(dt.Rows.Count);
            Console.ReadKey();
        } 

运行结果:

 

使用C#访问数据库入门

标签:写在前面   date   end   microsoft   loading   user   mysq   ldb   学习   

查看更多关于使用C#访问数据库入门的详细内容...

  阅读:27次

上一篇: Flink SQL learn

下一篇:gdb常用命令