private void PopulateResults(Procedure procedure, StoreProcedureMetadata result, SqlConnection conn)
        {
            using (var cmd = conn.CreateCommand())
            {
                cmd.CommandText = procedure.Name;
                cmd.CommandType = CommandType.StoredProcedure;
                result.Parameters.ForEach(p =>
                {
                    var dotNetType = _sqlTypeConverter.TypeList.First(_ => _.SqlServerTypeName == p.TypeName).DotNetType;
                    var value      = (object)DBNull.Value;
                    if (dotNetType != null)
                    {
                        if (dotNetType == typeof(string))
                        {
                            value = "";
                        }
                        else
                        {
                            value = Activator.CreateInstance(dotNetType);
                        }
                    }

                    cmd.Parameters.AddWithValue(p.ParameterName, value);
                });
                var listOfResults = new List <DataTable>();
                using (var reader = cmd.ExecuteReader())
                {
                    listOfResults.Add(reader.GetSchemaTable());
                    while (reader.NextResult())
                    {
                        listOfResults.Add(reader.GetSchemaTable());
                    }
                }

                listOfResults.ForEach(r =>
                {
                    var singleResultData = new List <SchemaTableRow>();
                    foreach (DataRow row in r.Rows)
                    {
                        var newRow = SchemaTableRow.FromDataRow(row);
                        newRow.FriendlyTypeName = _cSharpClassNameConverter.GetCSharpName(newRow.DataType);
                        singleResultData.Add(newRow);
                    }
                    result.Results.Add(singleResultData);
                });
            }
        }
Пример #2
0
 public void RemoveSchemaTableRow(SchemaTableRow row) {
     this.Rows.Remove(row);
 }
Пример #3
0
 public void AddSchemaTableRow(SchemaTableRow row) {
     this.Rows.Add(row);
 }
Пример #4
0
 public SchemaTableRowChangeEvent(SchemaTableRow row, global::System.Data.DataRowAction action) {
     this.eventRow = row;
     this.eventAction = action;
 }