C#获取SQLServer数据库表名和字段名

10 篇文章 0 订阅

SQLServer数据库每个数据库都有INFORMATION_SCHEMA视图,数据库的结构信息Schema都在这里存储。

select TABLE_NAME,TABLE_TYPE,TABLE_CATALOG,TABLE_SCHEMA from INFORMATION_SCHEMA.TABLES;

select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE from INFORMATION_SCHEMA.COLUMNS t where t.TABLE_NAME = 'StoreType';

图一:


图二:


C#实现代码如下:(采用Winform窗台编写的)

using System;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace GetTableNameAndFieldName
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void btnGet_Click(object sender, EventArgs e)
        {
            SayHello();
        }
        public void SayHello()
        {
            SqlHelper.connectionString = "Server=LocalHost;DataBase=StdentDB;Uid=Sa;Pwd=123;";

            // 从指定数据库中查找所有表名
            string sqlTableName = "Select * From Information_Schema.Tables";
            StringBuilder tableNames = new StringBuilder();
            using (SqlDataReader dr = SqlHelper.ExecuteReaderByText(sqlTableName, null))
            {
                while (dr.Read())
                {
                    // 表名
                    tableNames.Append(dr["Table_Name"]+",");
                }
            }
            MessageBox.Show("数据库中所有表名:"+tableNames.ToString(),"小赖温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
            StringBuilder fieldNames = new StringBuilder();
            // 遍历数据表
            foreach (var tableName in Convert.ToString(tableNames).Split(','))
            {
                // 从指定表名中查找所有字段名
                string sqlFieldName = "Select * From Information_Schema.Columns t Where t.Table_Name = '" + tableName+ "'";
                using (SqlDataReader dr = SqlHelper.ExecuteReaderByText(sqlFieldName, null))
                {         
                    while (dr.Read())
                    {
                        // 字段名
                        fieldNames.Append(dr["Column_Name"] + ",");
                    }
                }   
            }
            MessageBox.Show("所有数据表中的所有字段名:"+fieldNames.ToString(),"小赖温馨提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
        }
    }
}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值