如何在C#winform中显示SQL数据库里的表

T-Share 2011-08-07 11:49:17
如题:

有数据库shcom,表t1,t2,t3,t4

程序winform,如何在listview或datagridview显示出shcom中的表列
...全文
744 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LMAOhuaNL 2011-08-08
  • 打赏
  • 举报
回复
楼上正解
Awen_2020 2011-08-08
  • 打赏
  • 举报
回复
你表述的不够明确,如果仅列出所有表的名称,那么很简单:
select name from sysobjects where xtype='U' and name<>'dtproperties'

如果你还需要列出表中字段的名称则
select o.name as 表名, c.name as 字段名 from syscolumns c inner join sysobjects o on c.id=o.id where o.xtype='U' and o.name<>'dtproperties'

如果以上都不是你想要的结果,则请重新说明一下。
yang1605 2011-08-08
  • 打赏
  • 举报
回复
没太明白楼主的意思,是不是将四个表t1,t2,t3,t4的列全部显示出来到datagridview?如果是的话,那么查询的时候,建议你使用连接查询。。。

熙风 2011-08-08
  • 打赏
  • 举报
回复

for(int i=0;i<dt.rows.count;i++)
{
DataGridViewRow dgvr = new DataGridViewRow();
int rindex = dataGridView1.Rows.Add(dgvr);
dataGridView1.Rows[rindex].Cells["icd10code"].Value = dt.rows[0]["a"].ToString();
dataGridView1.Rows[rindex].Cells["name"].Value = dt.rows[0]["b"].ToString();
dataGridView1.Rows[rindex].Cells["othername"].Value = dt.rows[0]["c"].ToString();
}


lvdiff.Items.Clear();
for (int i = 0; i < dt.Rows.Count; i++)
{
ListViewItem item = new ListViewItem();
item.SubItems[0].Text = "";

ListViewItem.ListViewSubItem newItem = new ListViewItem.ListViewSubItem();
DataRow dr = dt.Rows[i];
DifferentList diff = SetDiffListByDr(dr);
newItem.Text = diff.Difflistname;
newItem.Tag = diff;
item.SubItems.Add(newItem);
lvdiff.Items.Add(item);
}
伽百叶 2011-08-08
  • 打赏
  • 举报
回复
楼上没有理解楼主的意思吧,其实我也没有明白,楼主的“表列”指的是什么,显示所有表的列表?
qsfool1987 2011-08-08
  • 打赏
  • 举报
回复
第一种方法把读出来的数据向ListView控件里添加,代码大概是这样:
SqlConnection conn=new SqlConnection(".;database=shcom;uid=...;pwd=...");
conn.Open();
SqlCommand cmd=new SqlCommand("select id,name,sex,... from t1",conn);
SqlDataReader sdr;
sdr=cmd.ExecuteReader();
while(sdr.read())
{
ListView.Items.Add(sdr["id"].ToString(),sdr["name"].ToString(),sdr["sex"].ToString());
}
sdr.close();
conn.close();

第二种用DataGridView控件就简单多啦
SqlConnection conn=new SqlConnection(".;database=shcom;uid=...;pwd=...");
SqlCommand cmd=new SqlCommand("select id,name,sex,... from t1",conn);
SqlDataAdapter sda=new SqlDataAdapter("select id,name,sex,... from t1",conn);
DataSet ds=new DataSet();
sda.Fill(ds);
DataGridView1.DataSource=ds.Table[0]
然后就在datagridview1这个控件里把数据显示出来了
st200316 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 huilo 的回复:]
你表述的不够明确,如果仅列出所有表的名称,那么很简单:
select name from sysobjects where xtype='U' and name<>'dtproperties'

如果你还需要列出表中字段的名称则
select o.name as 表名, c.name as 字段名 from syscolumns c inner join sysobjects o on c……
[/Quote]
是啊 表述的不是很清楚不过两种都不难实现
q107770540 2011-08-07
  • 打赏
  • 举报
回复
有现成的SQL语句可以读到指定库内所有表和列的啊
http://blog.csdn.net/q107770540/article/details/6127137

这是读取所有表的
再读取表内所有列的 你自己GOOGLE一下就OK了

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧