SQL数据库读取数据库名、表名和字段名系列操作

来源:互联网 发布:致命的自负 知乎 编辑:程序博客网 时间:2024/04/30 18:34

这两天研究单位OA平台人员数据导出,顺便研究了下读取数据库名、表名和字段名的方法,分享一下。

一、获取本机IP,用于获取数据库服务器的IP地址,当然,用127.0.0.1也可以,但有时会连不上。需要using System.Net;和using System.Net.Sockets;

public static string GetLocalIP()//获取本机IPv4地址        {            string HostName = Dns.GetHostName(); //得到主机名            IPHostEntry IpEntry = Dns.GetHostEntry(HostName);            for (int i = 0; i < IpEntry.AddressList.Length; i++)            {                if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork)                {                    return IpEntry.AddressList[i].ToString();                }            }            return "127.0.0.1";        }
二、检测数据库是否能连接上
        public static bool TryConnet(string sServer, string sUid, string sPwd)//根据服务器IP地址、用户名和密码尝试连接SQL服务器,返回连接结果。        {            string sConStr = "Database=master;" + "Server=" + sServer + ";uid=" + sUid + ";pwd=" + sPwd + ";";            try            {                SqlConnection con = new SqlConnection(sConStr);                con.Open();                con.Close();                return true;            }            catch            {                return false;            }        }
三、获取SQL数据库中所有用户数据库

        public static DataTable GetDatabase()//获取服务器中所有用户数据库,并在第一行加上选择项        {            //创建SQL连接,连接master数据库,自行补充代码,假设连接为Conn            Conn.Open();            SqlCommand Cmd = Conn.CreateCommand();            Cmd.CommandText = @"select name from sys.databases where Database_id>4 order by name";            DataSet DS = new DataSet();            SqlDataAdapter adapter = new SqlDataAdapter(Cmd);            adapter.Fill(DS);            DataTable DT =DS.Tables[0];            Conn.Close();            if (DT != null)            {                DataRow DR = DT.NewRow();                DR["name"] = "请选择数据库";                DT.Rows.InsertAt(DR, 0);                return DT;            }            else                return null;        }

四、获取指定数据库的所有表名

        public static DataTable GetDataTable(string DatabaseName)//获取指定数据库中所有表名称,并在第一行加上提示选择项        {            //创建SQL连接,连接为参数中的数据库,自行补充代码,假设连接为Conn            Conn.Open();            SqlCommand Cmd = Conn.CreateCommand();            Cmd.CommandText = @"select name from " + DatabaseName + "..SysOBjects where XType='U' order by name";            DataSet DS = new DataSet();            SqlDataAdapter adapter = new SqlDataAdapter(Cmd);            adapter.Fill(DS);            DataTable DT = DS.Tables[0];            Conn.Close();            if (DT != null)            {                DataRow DR = DT.NewRow();                DR["name"] = "请选择数据表";                DT.Rows.InsertAt(DR, 0);                return DT;            }            else                return null;        }
五、获取指定数据库中指定表所有字段名,这个我是打算用checkedListBox列出来的,所以不再添加“请选择”选项了
        public static DataTable GetColumns(string DatabaseName, string DataTableName)//获取指定数据库中指定表的所有字段名称        {            //创建SQL连接,自行补充代码,假设连接为Conn            Conn.Open();            SqlCommand Cmd = Conn.CreateCommand();            Cmd.CommandText = @"select name from SysColumns where id=Object_id('" + DataTableName + "')";            DataSet DS = new DataSet();            SqlDataAdapter adapter = new SqlDataAdapter(Cmd);            adapter.Fill(DS);            DataTable DT =DS.Tables[0];            return DT;        }






0 0