Как получить типы столбцов и использовать его в C # - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу сделать функцию вставки в базе данных доступа в моем коде c #, и я хочу, чтобы эта функция получала параметры, подобные типам столбцов в моей базе данных

Я попытался составить список и добавить типы столбцов вэто, но я хочу знать:

1 - как сделать типы (параметры функции вставки) равными list_types

2 - если я хочу использовать мои типы в другом коде, как конвертировать типы времени выполненияк обычным типам int, строка

partial class Program
{
    public void insert(params object[] types)
    {

    }

    static List<object> list_types = new List<object>();

    static void Main(string[] args)
    {


        cmd.Connection = conn;
        conn.Open();
        cmd.CommandText = "SELECT * FROM students";
        reader = cmd.ExecuteReader();



        // add columns types in list to use it in parametrs of insert function
        for (int i = 0; i < reader.FieldCount; i++)
        {

            if (reader.GetFieldType(i).Name == "Int32")
            {
                list_types.Add(new int());

            }else if(reader.GetFieldType(i).Name == "String")
            {
                list_types.Add("any value because 'new string()' throw error (i wanna type only not value)");
            }
        }

        //printing types of elements of list type

        foreach(var item in list_types)
        {
            Console.WriteLine(item.GetType().ToString());
        }
        while (reader.Read())
        {
            Console.WriteLine(reader[0] + "    " + reader[1]);

        }
        conn.Close();
        Console.ReadKey();

    }
}

Спасибо:)

1 Ответ

1 голос
/ 20 сентября 2019

Вы не работаете с типами ... вы делаете это странное превращение типа в строку и обратно в тип mumbo-jumbo.

Как насчет того, чтобы пропустить все это:

List<Type> types = new List<Type>();
for(int fieldIndex = 0; fieldIndex < reader.FieldCount; fieldIndex++) {
    types.Add(reader.GetFieldType(fieldIndex));
}

Затем при печати их на консоль:

    foreach(Type type in types) {
        Console.WriteLine($"{type.ToString()}");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...