0
点赞
收藏
分享

微信扫一扫

C# 读取Access数据库 返回某一列的值

快乐小鱼儿_9911 2022-04-06 阅读 92
c#

C# 读取access时,如果直接返回GetOleDbSchemaTable 读取的 DataTable,行数返回值不对, 

还是要用adapter, 得到DataTable, 然后可以得到正确的行数返回值,这样程序更合理。

        public static string[] read_a_Col_from_oneRowDataTable(string _connectionstr, string _tablename, string _colname)
        {
            string result = "";

            List<string> list = new List<string>();

            string strSQL = "SELECT * FROM " + _tablename;

            using (OleDbConnection connection = new OleDbConnection(_connectionstr))
            {

                OleDbCommand command = new OleDbCommand(strSQL, connection);

                OleDbDataAdapter adp = new OleDbDataAdapter(strSQL, connection);

                try
                {
                    connection.Open();

                    //DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, _tablename, null });

                    //DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, _tablename, _colname});// num_row 0

                    //dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, tableName, "TABLE" });

                    //con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName, columnName });         

                    DataTable dt = new DataTable();

                    adp.Fill(dt);

                    int num = dt.Rows.Count;

                    MessageBox.Show(num.ToString());

                    using (OleDbDataReader reader = command.ExecuteReader())
                    {

                        for (int i = 0; i < num; i++)

                        {

                            reader.Read(); // nur ein mal read

                            result = reader[_colname].ToString();

                            list.Add(result);

                        }
                    }
                }
                catch (Exception ex)
                {
                    //MessageBox.Show(ex.Message);
                }

            }
            return list.ToArray();

        }
 

举报

相关推荐

0 条评论