由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。第三次发帖问了. 异常frameworkmysql栈 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请看ExecuteReader方法类的注释. 啊.. 我真是无解了. 我感觉和这个mysqlhelp 类没有什么关系啊. using System;using System.Collections.Generic;using System.Text;using System.Web;using MySql.Data.MySqlClient;using System.Data;using System.Configuration;namespace V5Shop.Data{ public class MySqlDBHelp { private static MySqlConnection _connection; /// <summary> /// 获取数据库连接桥 /// </summary> private static MySqlConnection Connection { get { string connectionString = ConfigurationManager.AppSettings["MYSQLConnString"]; if (_connection == null) { _connection = new MySqlConnection(connectionString); _connection.Open(); } if (_connection.State == ConnectionState.Closed) { _connection.Open(); } if (_connection.State == ConnectionState.Broken) { _connection.Close(); _connection.Open(); } return _connection; } } #region 数据获取和执行类 /// <summary> /// 获取表数据 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static MySqlDataReader GetDataRead(string sql) { MySqlCommand command = new MySqlCommand(sql, Connection); using (MySqlDataReader read = command.ExecuteReader()) { return read; } } public static int ExecuteNonQuery(string sql) { MySqlCommand command = new MySqlCommand(sql, Connection); int row = command.ExecuteNonQuery(); return row; } //public static DataTable ExecuteDataTable(string sql) //{ // MySqlCommand command = new MySqlCommand(sql, Connection); // DataTable dt = new DataTable(); // try // { // MySqlDataAdapter sda = new MySqlDataAdapter(command); // sda.Fill(dt); // } // catch (Exception) // { // throw; // } // return dt; //} public static DataTable ExecuteDataTable(string sql) { string connString = ConfigurationManager.AppSettings["MYSQLConnString"]; DataSet ds = ExecuteDataSet(connString,CommandType.Text,sql); return ds.Tables[0]; } /// <summary> /// 执行sql语句,返回一行一列。。 /// </summary> /// <param name="sql">SQL语句</param> /// <returns></returns> public static string GetScalar(string sql) { MySqlCommand command = new MySqlCommand(sql, Connection); return command.ExecuteScalar().ToString(); } #endregion #region 事务操作 /// <summary> /// 用提供的函数,执行SQL命令,返回一个从指定连接的数据库记录集 /// </summary> /// <param name="connectionString">SqlConnection有效的SQL连接字符串</param> /// <param name="commandType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="commandText">SQL语句或存储过程</param> /// <param name="commandParameters">SqlParameter[]参数数组</param> /// <returns>SqlDataReader:执行结果的记录集</returns> public static MySqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms) { MySqlCommand cmd = new MySqlCommand(); MySqlConnection conn = new MySqlConnection(connString); // 我们在这里用 try/catch 是因为如果这个方法抛出异常,我们目的是关闭数据库连接,再抛出异常, // 因为这时不会有DataReader存在,此后commandBehaviour.CloseConnection将不会工作。 try { PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms); // 这里已经using 可是人家说就是这里未关闭. 请问到底怎么释放. using (MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { cmd.Parameters.Clear(); return rdr; } } catch { conn.Close(); throw; } } /// <summary> /// 用提供的函数,执行SQL命令,返回一个从指定连接的数据库记录集 /// </summary> /// <param name="connectionString">SqlConnection有效的SQL连接字符串</param> /// <param name="commandType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="commandText">SQL语句或存储过程</param> /// <returns>SqlDataReader:执行结果的记录集</returns> public static MySqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText) { return ExecuteReader(connString, cmdType, cmdText, (MySqlParameter[])null); } /// <summary> /// 用提供的方法,执行带参数的SQL命令,返回值为该命令所影响的行数 /// </summary> /// <param name="connString">SqlConnection有效的SQL连接字符串</param> /// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="cmdText">SQL语句或存储过程</param> /// <param name="cmdParameters">SQL语句所带的参数集</param> /// <returns>int:该命令所影响的行数</returns> public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParameters) { MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } } /// <summary> /// 用提供的方法,执行SQL命令,返回值为该命令所影响的行数 /// </summary> /// <param name="connString">SqlConnection有效的SQL连接字符串</param> /// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="cmdText">SQL语句或存储过程</param> /// <returns>int:该命令所影响的行数</returns> public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText) { return ExecuteNonQuery(connString, cmdType, cmdText, (MySqlParameter[])null); } /// <summary> /// 用提供的方法,执行带参数的SQL命令,返回值为结果集中第一行的第一列或空引用(如果结果集为空)。 /// </summary> /// <param name="connString">SqlConnection有效的SQL连接字符串</param> /// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="cmdText">SQL语句或存储过程</param> /// <param name="cmdParameters">SQL语句所带的参数集</param> /// <returns></returns> public static string ExecuteScalar(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParameters) { MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParameters); return cmd.ExecuteScalar().ToString(); } } /// <summary> /// 用提供的方法,执行SQL命令,返回值为结果集中第一行的第一列或空引用(如果结果集为空)。 /// </summary> /// <param name="connString">SqlConnection有效的SQL连接字符串</param> /// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="cmdText">SQL语句或存储过程</param> /// <returns></returns> public static string ExecuteScalar(string connString, CommandType cmdType, string cmdText) { return ExecuteScalar(connString, cmdType, cmdText, (MySqlParameter[])null); } public static DataSet ExecuteDataSet(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParameters) { MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParameters); MySqlDataAdapter ada = new MySqlDataAdapter(cmd); DataSet ds = new DataSet(); ada.Fill(ds); cmd.Parameters.Clear(); return ds; } } /// <summary> /// 用提供的方法,执行SQL命令,返回值为DataSet数据集 /// </summary> /// <param name="connString">SqlConnection有效的SQL连接字符串</param> /// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param> /// <param name="cmdText">SQL语句或存储过程</param> /// <returns>Datat:该命令的结果集</returns> public static DataSet ExecuteDataSet(string connString, CommandType cmdType, string cmdText) { return ExecuteDataSet(connString, cmdType, cmdText, (MySqlParameter[])null); } public static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) { foreach (MySqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } } #endregion }} 搞混了求理清 code 128条码算法? C# 读取二进制文件画灰度图(在线等) for和foreach同时用的问题 C#关于font小问题 使用socket方式可以 connect 某个特定域名服务器吗? 什么方法可以点击窗体上任意一快地方,可以拖动整个窗体的啊? 关于mdi窗体的问题 请教关于打印跳转的问题。help!!!!! 判断XML是否有某个节点 求大神进来看下关于WCF部署在IIS上的问题 c# winfrom项目,timer控件显示的时间在webbrower控件中加载页面过程中导致timer控件显示时间会停一小会后再继续接着显示时间
using System.Collections.Generic;
using System.Text;
using System.Web;
using MySql.Data.MySqlClient;
using System.Data;
using System.Configuration;
namespace V5Shop.Data
{
public class MySqlDBHelp
{
private static MySqlConnection _connection;
/// <summary>
/// 获取数据库连接桥
/// </summary>
private static MySqlConnection Connection
{
get
{
string connectionString = ConfigurationManager.AppSettings["MYSQLConnString"];
if (_connection == null)
{
_connection = new MySqlConnection(connectionString);
_connection.Open();
}
if (_connection.State == ConnectionState.Closed)
{
_connection.Open();
}
if (_connection.State == ConnectionState.Broken)
{
_connection.Close();
_connection.Open();
}
return _connection;
} } #region 数据获取和执行类
/// <summary>
/// 获取表数据
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static MySqlDataReader GetDataRead(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
using (MySqlDataReader read = command.ExecuteReader())
{
return read;
}
}
public static int ExecuteNonQuery(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
int row = command.ExecuteNonQuery();
return row;
}
//public static DataTable ExecuteDataTable(string sql)
//{ // MySqlCommand command = new MySqlCommand(sql, Connection); // DataTable dt = new DataTable();
// try
// {
// MySqlDataAdapter sda = new MySqlDataAdapter(command);
// sda.Fill(dt);
// }
// catch (Exception)
// { // throw;
// } // return dt;
//}
public static DataTable ExecuteDataTable(string sql)
{
string connString = ConfigurationManager.AppSettings["MYSQLConnString"];
DataSet ds = ExecuteDataSet(connString,CommandType.Text,sql);
return ds.Tables[0];
} /// <summary>
/// 执行sql语句,返回一行一列。。
/// </summary>
/// <param name="sql">SQL语句</param>
/// <returns></returns>
public static string GetScalar(string sql)
{
MySqlCommand command = new MySqlCommand(sql, Connection);
return command.ExecuteScalar().ToString();
} #endregion
#region 事务操作
/// <summary>
/// 用提供的函数,执行SQL命令,返回一个从指定连接的数据库记录集
/// </summary>
/// <param name="connectionString">SqlConnection有效的SQL连接字符串</param>
/// <param name="commandType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="commandText">SQL语句或存储过程</param>
/// <param name="commandParameters">SqlParameter[]参数数组</param>
/// <returns>SqlDataReader:执行结果的记录集</returns>
public static MySqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParms)
{
MySqlCommand cmd = new MySqlCommand();
MySqlConnection conn = new MySqlConnection(connString); // 我们在这里用 try/catch 是因为如果这个方法抛出异常,我们目的是关闭数据库连接,再抛出异常,
// 因为这时不会有DataReader存在,此后commandBehaviour.CloseConnection将不会工作。
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
// 这里已经using 可是人家说就是这里未关闭. 请问到底怎么释放.
using (MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
cmd.Parameters.Clear();
return rdr;
}
}
catch
{
conn.Close();
throw;
}
} /// <summary>
/// 用提供的函数,执行SQL命令,返回一个从指定连接的数据库记录集
/// </summary>
/// <param name="connectionString">SqlConnection有效的SQL连接字符串</param>
/// <param name="commandType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="commandText">SQL语句或存储过程</param>
/// <returns>SqlDataReader:执行结果的记录集</returns>
public static MySqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText)
{
return ExecuteReader(connString, cmdType, cmdText, (MySqlParameter[])null);
} /// <summary>
/// 用提供的方法,执行带参数的SQL命令,返回值为该命令所影响的行数
/// </summary>
/// <param name="connString">SqlConnection有效的SQL连接字符串</param>
/// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="cmdText">SQL语句或存储过程</param>
/// <param name="cmdParameters">SQL语句所带的参数集</param>
/// <returns>int:该命令所影响的行数</returns>
public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParameters)
{ MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
/// 用提供的方法,执行SQL命令,返回值为该命令所影响的行数
/// </summary>
/// <param name="connString">SqlConnection有效的SQL连接字符串</param>
/// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="cmdText">SQL语句或存储过程</param>
/// <returns>int:该命令所影响的行数</returns>
public static int ExecuteNonQuery(string connString, CommandType cmdType, string cmdText)
{
return ExecuteNonQuery(connString, cmdType, cmdText, (MySqlParameter[])null);
}
/// <summary>
/// 用提供的方法,执行带参数的SQL命令,返回值为结果集中第一行的第一列或空引用(如果结果集为空)。
/// </summary>
/// <param name="connString">SqlConnection有效的SQL连接字符串</param>
/// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="cmdText">SQL语句或存储过程</param>
/// <param name="cmdParameters">SQL语句所带的参数集</param>
/// <returns></returns>
public static string ExecuteScalar(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParameters)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParameters);
return cmd.ExecuteScalar().ToString();
} }
/// <summary>
/// 用提供的方法,执行SQL命令,返回值为结果集中第一行的第一列或空引用(如果结果集为空)。
/// </summary>
/// <param name="connString">SqlConnection有效的SQL连接字符串</param>
/// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="cmdText">SQL语句或存储过程</param>
/// <returns></returns>
public static string ExecuteScalar(string connString, CommandType cmdType, string cmdText)
{
return ExecuteScalar(connString, cmdType, cmdText, (MySqlParameter[])null);
} public static DataSet ExecuteDataSet(string connString, CommandType cmdType, string cmdText, params MySqlParameter[] cmdParameters)
{
MySqlCommand cmd = new MySqlCommand(); using (MySqlConnection conn = new MySqlConnection(connString))
{ PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParameters);
MySqlDataAdapter ada = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
ada.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
}
/// <summary>
/// 用提供的方法,执行SQL命令,返回值为DataSet数据集
/// </summary>
/// <param name="connString">SqlConnection有效的SQL连接字符串</param>
/// <param name="cmdType">CommandType:CommandType.Text、CommandType.StoredProcedure</param>
/// <param name="cmdText">SQL语句或存储过程</param>
/// <returns>Datat:该命令的结果集</returns>
public static DataSet ExecuteDataSet(string connString, CommandType cmdType, string cmdText)
{
return ExecuteDataSet(connString, cmdType, cmdText, (MySqlParameter[])null);
}
public static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{ if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
} #endregion
}
}