예제 #1
0
        public void SpBeginExecuteReader(string spName, Action <AsyncDbCallback <DataReader> > callback, string[] parameters, params object[] values)
        {
            if (callback == null)
            {
                throw new ArgumentNullException(string.Format("Exec {0} Error! Callback action can not be null!!", spName));
            }

            SqlConnection cnn = GetConnection();
            SqlCommand    cmd = new SqlCommand(spName, cnn);

            cmd.CommandTimeout = CommandTimeout;
            cmd.CommandType    = CommandType.StoredProcedure;

            try {
                SpFillParameters(cmd, parameters, values);

                AsyncDbCallback <DataReader> context = new AsyncDbCallback <DataReader>();
                context.SqlCommand    = cmd;
                context.SqlConnection = cnn;
                context.CallbackType  = CallbackType.DataReader;
                context.DbType        = IICDbType.SqlServer2005;
                cmd.BeginExecuteReader(
                    new AsyncCallback(delegate(IAsyncResult ar) {
                    AsyncDbCallback <DataReader> c = ar.AsyncState as AsyncDbCallback <DataReader>;
                    c.ar = ar;
                    callback(context);
                }),
                    context,
                    CommandBehavior.CloseConnection);
            } catch (System.Exception ex) {
                cnn.Close();
                throw ex;
            }
        }
예제 #2
0
        //public IAsyncResult SpBeginExecuteNonQuery(string spName, AsyncCallback callback, object stateObject, string[] parameters, params object[] values) {
        //    throw new NotImplementedException();
        //}

        //public int SpEndExecuteNonQuery(IDbCommand cmd, IAsyncResult ar) {
        //    throw new NotImplementedException();
        //}

        public void SpBeginExecuteNonQuery(string spName, Action <AsyncDbCallback <int> > callback, string[] parameters, params object[] values)
        {
            if (callback == null)
            {
                throw new ArgumentNullException(string.Format("Exec {0} Error! Callback action can not be null!!", spName));
            }

            MySqlConnection cnn = GetConnection();
            MySqlCommand    cmd = new MySqlCommand(spName, cnn);

            cmd.CommandTimeout = CommandTimeout;
            cmd.CommandType    = CommandType.StoredProcedure;

            try {
                SpFillParameters(cmd, parameters, values);

                AsyncDbCallback <int> context = new AsyncDbCallback <int>();
                context.CallbackType  = CallbackType.NonQuery;
                context.DbType        = IICDbType.Mysql;
                context.SqlConnection = cnn;
                context.SqlCommand    = cmd;

                cmd.BeginExecuteNonQuery(new AsyncCallback(delegate(IAsyncResult ar) {
                    context.ar = ar;
                    callback(context);
                }), context);
            } catch (System.Exception ex) {
                cnn.Close();
                throw ex;
            }
        }