Правильно прочитать тип данных столбца в базе данных MS Access - PullRequest
0 голосов
/ 21 февраля 2019

Как правильно получить таблицу типов данных MS Access

Ниже мой код:

var con = $"Provider=Microsoft.Jet.OLEDB.4.0;" +
                           $"Data Source={database};" +
                           "Persist Security Info=True;";
                using (OleDbConnection myConnection = new OleDbConnection())
                {
                    myConnection.ConnectionString = con;
                    myConnection.Open();
                    DataTable dt = myConnection.GetSchema("Tables");

                    var l = myConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

                    var isTableExist = false;
                    foreach (DataRow item in l.Rows)
                    {
                        var tbleName = item[2].ToString();

                        if (tbleName == tableName)
                        {
                            isTableExist = true;
                            break;
                        }
                    }

                    if (isTableExist)
                    {
                        string sql = string.Format($"SELECT * FROM {tableName}");
                        using (OleDbCommand cmd = new OleDbCommand(sql, myConnection))
                        {
                            using (OleDbDataReader reader = cmd.ExecuteReader())
                            {
                                if (reader != null)
                                {
                                    for (int i = 0; i < reader.FieldCount; i++)
                                    {
                                        Console.WriteLine(reader.GetName(i));
                                        Console.WriteLine(reader.GetDataTypeName(i));
                                    }
                                }
                            }
                        }
                    }
                }

Вот структура файла mdb, который я читал

enter image description here

И вот что я получаю

id
DBTYPE_I4
main_id
DBTYPE_I4
Document_ID
DBTYPE_WVARCHAR
End_page
DBTYPE_WVARCHAR
No_pages
DBTYPE_I4

Почему тип данных AutoNumber отображается так же, как и тип данных числа?

То, что я делаю здесь, это объединение таблиц.И я хочу пропустить оператор вставки для этих типов данных AutoNumber, но я не могу заставить его работать, потому что результат совпадает с числом.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...