多次调用RunPorce
protected SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
竟然会出现卡死,以扣再有连接,就会出现错误。using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace WebSite.Public
{
/// <summary>
/// XinoDB 的摘要说明。
/// </summary>
public class XinoDB
{
private string strError; public XinoDB()
{
strError="";
} /*******************************************
* 函数名称: XinoGetError
* 功能描述: 取得最后一次错误描述
*/
public string XinoGetError()
{
return strError;
}
/*******************************************
* 函数名称: XinoSetError
* 功能描述: 设置最后一次错误描述
*/
public void XinoSetError(string strNewError)
{
strError=strNewError;
} /*******************************************
* 函数名称: Connection
* 功能描述: 打开数据库连接
*/
public bool XinoConnection(SqlConnection objConn)
{
try
{
string strConn=ConfigurationSettings.AppSettings["ConnectionString"];
objConn.ConnectionString = strConn;
objConn.Open();
}
catch(System.Exception e)
{
XinoSetError(e.ToString());
return false;
}
return true;
}
/*******************************************
*函数名称: XinoClose
*功能描述: 关闭数据库连接
*/
public bool XinoClose(SqlConnection objConn)
{
try
{
objConn.Close();
}
catch(System.Exception e)
{
XinoSetError(e.ToString());
return false;
}
return true;
} private SqlCommand BuildIntCommand(SqlConnection Connection,string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = BuildQueryCommand(Connection, storedProcName, parameters ); command.Parameters.Add( new SqlParameter ( "ReturnValue",
SqlDbType.Int,
4, /* Size */
ParameterDirection.ReturnValue,
false, /* is nullable */
0, /* byte precision */
0, /* byte scale */
string.Empty,
DataRowVersion.Default,
null )); return command;
} /// <summary>
/// Builds a SqlCommand designed to return a SqlDataReader, and not
/// an actual integer value.
/// </summary>
/// <param name="storedProcName">Name of the stored procedure</param>
/// <param name="parameters">Array of IDataParameter objects</param>
/// <returns></returns>
private SqlCommand BuildQueryCommand(SqlConnection Connection,string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = new SqlCommand( storedProcName, Connection );
command.CommandType = CommandType.StoredProcedure; foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
} return command; } /*******************************************
*函数名称: RunProcedure
*功能描述: 执行存储过程
*/
protected int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
int result = 0;
SqlConnection Connection = new SqlConnection();
rowsAffected = 0;
try
{
XinoConnection(Connection); SqlCommand command = BuildIntCommand(Connection, storedProcName, parameters );
rowsAffected = command.ExecuteNonQuery();
result = (int)command.Parameters["ReturnValue"].Value;
XinoClose(Connection);
}
catch(System.Exception e)
{
XinoSetError(e.ToString());
}
return result;
} protected SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
SqlDataReader returnReader=null;
SqlConnection Connection = new SqlConnection();
if(XinoConnection(Connection))
{ SqlCommand command = BuildQueryCommand(Connection, storedProcName, parameters );
command.CommandType = CommandType.StoredProcedure; returnReader = command.ExecuteReader();
}
//XinoClose(Connection); return returnReader;
} protected DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
DataSet dataSet = new DataSet();
SqlConnection Connection = new SqlConnection();
XinoConnection(Connection); SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(Connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName ); XinoClose(Connection); return dataSet;
} protected void RunProcedure(string storedProcName, IDataParameter[] parameters, DataSet dataSet, string tableName )
{
SqlConnection Connection = new SqlConnection();
XinoConnection(Connection); SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildIntCommand(Connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName ); XinoClose(Connection);
} //执行存储过程结束
/****************************************************************************************/
}
}
protected SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
竟然会出现卡死,以扣再有连接,就会出现错误。using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace WebSite.Public
{
/// <summary>
/// XinoDB 的摘要说明。
/// </summary>
public class XinoDB
{
private string strError; public XinoDB()
{
strError="";
} /*******************************************
* 函数名称: XinoGetError
* 功能描述: 取得最后一次错误描述
*/
public string XinoGetError()
{
return strError;
}
/*******************************************
* 函数名称: XinoSetError
* 功能描述: 设置最后一次错误描述
*/
public void XinoSetError(string strNewError)
{
strError=strNewError;
} /*******************************************
* 函数名称: Connection
* 功能描述: 打开数据库连接
*/
public bool XinoConnection(SqlConnection objConn)
{
try
{
string strConn=ConfigurationSettings.AppSettings["ConnectionString"];
objConn.ConnectionString = strConn;
objConn.Open();
}
catch(System.Exception e)
{
XinoSetError(e.ToString());
return false;
}
return true;
}
/*******************************************
*函数名称: XinoClose
*功能描述: 关闭数据库连接
*/
public bool XinoClose(SqlConnection objConn)
{
try
{
objConn.Close();
}
catch(System.Exception e)
{
XinoSetError(e.ToString());
return false;
}
return true;
} private SqlCommand BuildIntCommand(SqlConnection Connection,string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = BuildQueryCommand(Connection, storedProcName, parameters ); command.Parameters.Add( new SqlParameter ( "ReturnValue",
SqlDbType.Int,
4, /* Size */
ParameterDirection.ReturnValue,
false, /* is nullable */
0, /* byte precision */
0, /* byte scale */
string.Empty,
DataRowVersion.Default,
null )); return command;
} /// <summary>
/// Builds a SqlCommand designed to return a SqlDataReader, and not
/// an actual integer value.
/// </summary>
/// <param name="storedProcName">Name of the stored procedure</param>
/// <param name="parameters">Array of IDataParameter objects</param>
/// <returns></returns>
private SqlCommand BuildQueryCommand(SqlConnection Connection,string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = new SqlCommand( storedProcName, Connection );
command.CommandType = CommandType.StoredProcedure; foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
} return command; } /*******************************************
*函数名称: RunProcedure
*功能描述: 执行存储过程
*/
protected int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
int result = 0;
SqlConnection Connection = new SqlConnection();
rowsAffected = 0;
try
{
XinoConnection(Connection); SqlCommand command = BuildIntCommand(Connection, storedProcName, parameters );
rowsAffected = command.ExecuteNonQuery();
result = (int)command.Parameters["ReturnValue"].Value;
XinoClose(Connection);
}
catch(System.Exception e)
{
XinoSetError(e.ToString());
}
return result;
} protected SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
SqlDataReader returnReader=null;
SqlConnection Connection = new SqlConnection();
if(XinoConnection(Connection))
{ SqlCommand command = BuildQueryCommand(Connection, storedProcName, parameters );
command.CommandType = CommandType.StoredProcedure; returnReader = command.ExecuteReader();
}
//XinoClose(Connection); return returnReader;
} protected DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
DataSet dataSet = new DataSet();
SqlConnection Connection = new SqlConnection();
XinoConnection(Connection); SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(Connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName ); XinoClose(Connection); return dataSet;
} protected void RunProcedure(string storedProcName, IDataParameter[] parameters, DataSet dataSet, string tableName )
{
SqlConnection Connection = new SqlConnection();
XinoConnection(Connection); SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildIntCommand(Connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName ); XinoClose(Connection);
} //执行存储过程结束
/****************************************************************************************/
}
}
先把包的错贴出来