示例#1
0
        public object ExecuteQuery(string pStoredName, object xmlOrParamOrRow, ReturnObjectType retType, int timeOut)
        {
            SqlCommand     selectCommand   = new SqlCommand();
            SqlDataAdapter sqlDataAdapter1 = (SqlDataAdapter)null;
            object         obj1            = (object)null;

            try
            {
                selectCommand.CommandText = pStoredName;
                selectCommand.CommandType = CommandType.StoredProcedure;
                if (xmlOrParamOrRow != null)
                {
                    if (xmlOrParamOrRow.GetType() == typeof(string))
                    {
                        string       str          = (string)xmlOrParamOrRow;
                        SqlParameter sqlParameter = new SqlParameter();
                        sqlParameter.SqlDbType     = SqlDbType.NText;
                        sqlParameter.Value         = str;
                        sqlParameter.ParameterName = "@XML";
                        sqlParameter.Direction     = ParameterDirection.Input;
                        selectCommand.Parameters.Add(sqlParameter);
                    }
                    else if (xmlOrParamOrRow.GetType() == typeof(SqlParameter[]))
                    {
                        selectCommand.Parameters.AddRange((SqlParameter[])xmlOrParamOrRow);
                    }
                    else if (xmlOrParamOrRow.GetType() == typeof(DataRow))
                    {
                        DataRow dataRow = (DataRow)xmlOrParamOrRow;
                        int     count   = dataRow.Table.Columns.Count;
                        for (int index = 0; index < count; ++index)
                        {
                            object       obj2         = dataRow[index];
                            SqlParameter sqlParameter = new SqlParameter("@" + dataRow.Table.Columns[index].ColumnName, obj2);
                            selectCommand.Parameters.Add(sqlParameter);
                        }
                    }
                }
                selectCommand.CommandTimeout = timeOut;
                selectCommand.Connection     = new SqlConnection(this.ConnectionString);
                if (selectCommand.Connection.State == ConnectionState.Closed)
                {
                    selectCommand.Connection.Open();
                }
                if (retType == ReturnObjectType.Object)
                {
                    obj1 = selectCommand.ExecuteScalar();
                }
                else if (retType == ReturnObjectType.NonQuery)
                {
                    obj1 = (object)selectCommand.ExecuteNonQuery();
                }
                else
                {
                    SqlDataAdapter sqlDataAdapter2 = new SqlDataAdapter(selectCommand);
                    DataSet        dataSet         = new DataSet();
                    sqlDataAdapter2.Fill(dataSet);
                    try
                    {
                        switch (retType)
                        {
                        case ReturnObjectType.DataSet:
                            obj1 = (object)dataSet;
                            break;

                        case ReturnObjectType.DataTable:
                            obj1 = (object)dataSet.Tables[0];
                            break;

                        case ReturnObjectType.DataRow:
                            obj1 = (object)dataSet.Tables[0].Rows[0];
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                selectCommand.Parameters.Clear();
                if (selectCommand.Connection.State != ConnectionState.Closed)
                {
                    selectCommand.Connection.Close();
                }
                sqlDataAdapter1 = (SqlDataAdapter)null;
            }
            return(obj1);
        }
示例#2
0
 public object ExecuteQuery(string pStoredName, string pXML, ReturnObjectType retType)
 {
     return(this.ExecuteQuery(pStoredName, (object)pXML, retType, 30));
 }