Asp.net连接mysql 不推荐使用ODBC,推荐是用mysql官网提供的组件MySQL.Data.Dll,放在bin下面,添加引用即可
下面是封装的几个常用操作
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using MySql.Data.MySqlClient;
6 using System.Data;
7 using System.Text;
8
9 namespace WebApplication2
10 {
11 public class DBHelper
12 {
13 public static string connectionString = "Host=127.0.0.1;UserName=root;Password=root;"
14 +"Database=mmloo;Port=3306;CharSet=utf8;Allow Zero Datetime=true";
15
16 public DBHelper(){}
17
18 public static string DataTableToJson(DataTable dt)
19 {
20 StringBuilder jsonBuilder = new StringBuilder();
21 jsonBuilder.Append("{\"");
22 jsonBuilder.Append(dt.TableName);
23 jsonBuilder.Append("\":[");
24 jsonBuilder.Append("[");
25 for (int i = 0; i < dt.Rows.Count; i++)
26 {
27 jsonBuilder.Append("{");
28 for (int j = 0; j < dt.Columns.Count; j++)
29 {
30 jsonBuilder.Append("\"");
31 jsonBuilder.Append(dt.Columns[j].ColumnName);
32 jsonBuilder.Append("\":\"");
33 jsonBuilder.Append(dt.Rows[i][j].ToString());
34 jsonBuilder.Append("\",");
35 }
36 jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
37 jsonBuilder.Append("},");
38 }
39 jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
40 jsonBuilder.Append("]");
41 jsonBuilder.Append("}");
42 return jsonBuilder.ToString();
43 }
44 /// <summary>
45 /// 执行sql语句,返回影响的记录数
46 /// </summary>
47 /// <param name="SQLString"></param>
48 /// <returns></returns>
49 public static int ExecuteNonQuery(string SQLString)
50 {
51 using (MySqlConnection connection = new MySqlConnection(connectionString))
52 {
53 using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
54 {
55 try
56 {
57 connection.Open();
58 int rows = cmd.ExecuteNonQuery();
59 return rows;
60 }
61 catch (MySql.Data.MySqlClient.MySqlException e)
62 {
63 connection.Close();
64 throw e;
65 }
66 }
67 }
68 }
69
70
71 /// <summary>
72 /// 执行SQL语句,返回影响的记录数
73 /// </summary>
74 /// <param name="SQLString">SQL语句</param>
75 /// <returns>影响的记录数</returns>
76 public static int ExecuteNonQuery(string SQLString, params MySqlParameter[] cmdParms)
77 {
78 using (MySqlConnection connection = new MySqlConnection(connectionString))
79 {
80 using (MySqlCommand cmd = new MySqlCommand())
81 {
82 try
83 {
84 PrepareCommand(cmd, connection, null, SQLString, cmdParms);
85 int rows = cmd.ExecuteNonQuery();
86 cmd.Parameters.Clear();
87 return rows;
88 }
89 catch (MySql.Data.MySqlClient.MySqlException e)
90 {
91 throw e;
92 }
93 }
94 }
95 }
96
97
98 /// <summary>
99 /// 执行查询语句,返回DataTable
100 /// </summary>
101 /// <param name="SQLString">查询语句</param>
102 /// <returns>DataTable</returns>
103 public static DataTable ExecuteDataTable(string SQLString)
104 {
105 using (MySqlConnection connection = new MySqlConnection(connectionString))
106 {
107 DataSet ds = new DataSet();
108 try
109 {
110 connection.Open();
111 MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
112 command.Fill(ds, "ds");
113 }
114 catch (MySql.Data.MySqlClient.MySqlException ex)
115 {
116 throw new Exception(ex.Message);
117 }
118 return ds.Tables[0];
119 }
120 }
121
122
123 /// <summary>
124 /// 执行查询语句,返回DataSet
125 /// </summary>
126 /// <param name="SQLString">查询语句</param>
127 /// <returns>DataTable</returns>
128 public static DataTable ExecuteDataTable(string SQLString, params MySqlParameter[] cmdParms)
129 {
130 using (MySqlConnection connection = new MySqlConnection(connectionString))
131 {
132 MySqlCommand cmd = new MySqlCommand();
133 PrepareCommand(cmd, connection, null, SQLString, cmdParms);
134 using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
135 {
136 DataSet ds = new DataSet();
137 try
138 {
139 da.Fill(ds, "ds");
140 cmd.Parameters.Clear();
141 }
142 catch (MySql.Data.MySqlClient.MySqlException ex)
143 {
144 throw new Exception(ex.Message);
145 }
146 return ds.Tables[0];
147 }
148 }
149 }
150
151
152 /// <summary>
153 /// 创建cmd
154 /// </summary>
155 /// <param name="cmd"></param>
156 /// <param name="conn"></param>
157 /// <param name="trans"></param>
158 /// <param name="cmdText"></param>
159 /// <param name="cmdParms"></param>
160 private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText, MySqlParameter[] cmdParms)
161 {
162
163 if (conn.State != ConnectionState.Open)
164 conn.Open();
165 cmd.Connection = conn;
166 cmd.CommandText = cmdText;
167 if (trans != null)
168 cmd.Transaction = trans;
169 cmd.CommandType = CommandType.Text;//cmdType;
170 if (cmdParms != null)
171 {
172 foreach (MySqlParameter parameter in cmdParms)
173 {
174 if ((parameter.Direction == ParameterDirection.InputOutput ||
175 parameter.Direction == ParameterDirection.Input) &&
176 (parameter.Value == null))
177 {
178 parameter.Value = DBNull.Value;
179 }
180 cmd.Parameters.Add(parameter);
181 }
182 }
183 }
184
185 }
186 }