C# 连接数据库多表查询显示

时间:2022-04-27 13:31:47
想对两个表进行查询显示,从第一个表中提取一个信息,从第二个表中提取一个,然后一起显示在dataGridView,用的下面的代码,运行后报错显示如下。不太清楚是哪里的问题,初学,不知道select后,数据是怎么存在ds里的,感觉这个错误好像是我的第二个查询是空的,求教!拜托拜托~~~(不知道代码怎么弄成那种带行号的。。。只会复制粘贴。。。)


                        string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'"
                                            +"select " + Voltage + " from 电压质量 where 电站编号='" + textBox7.Text + "'";
                        
                        SqlConnection CONN = new SqlConnection(str_con);
                        //打开数据库连接
                        CONN.Open();

                        SqlCommand comm = new SqlCommand(sql, CONN);
                        SqlDataAdapter da = new SqlDataAdapter(comm);

                        DataSet ds = new DataSet();
                        
                        da.Fill(ds, "电能质量,电压质量");

                        dataGridView2.DataSource = ds; 
                        dataGridView2.DataMember = "电能质量,电压质量";

                        //**********************列头设置*****************************
                        dataGridView2.Columns[0].HeaderText = " " + QEEP + "";
                        //设置dataGridView1控件第一列的列宽
                        dataGridView2.Columns[0].Width = 150;

                        dataGridView2.Columns[1].HeaderText = "" + Voltage + "";
                        dataGridView2.Columns[1].DataPropertyName = ds.Tables[1].Columns[0].ToString();
                        dataGridView2.Columns[1].Width = 80;

                        CONN.Close();

C# 连接数据库多表查询显示

6 个解决方案

#1


http://www.cnblogs.com/alexis/archive/2010/11/06/1870519.html

Columns 应该只有一列,手动添加新列,并指定DataPropertyName 为查询出来的字段名称。  很基础,先去学学DataGridView 常用的属性。

#2


select a as A, b as B,c as C  from t1
union 
select a2 as A, b2 as B,c2 as C  from t2

#3


1、你的错误是dataGridView2没有列导致的,度娘找个demo学习下dataGridView控件怎么使用
2、你的sql语句可以改成
string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'"
                                            +"union all select " + Voltage + " from 电压质量 where 电站编号='" + textBox7.Text + "'";

在sql server中union all是合并结果集

#4


不太清楚是哪里的问题,初学,不知道select后,数据是怎么存在ds里的
学习下ado.net的基础知识

#5


你  string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'" ......
查询的结果中只有一列
并不存在 dataGridView2.Columns[1]

再说你联合的两个 select 子句,缺少 union!
根本就是错的,并不可能查询出结果

#6


   string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'"
                                            +" union select " + Voltage + " from 电压质量 where 电站编号='" + textBox7.Text + "'";

#1


http://www.cnblogs.com/alexis/archive/2010/11/06/1870519.html

Columns 应该只有一列,手动添加新列,并指定DataPropertyName 为查询出来的字段名称。  很基础,先去学学DataGridView 常用的属性。

#2


select a as A, b as B,c as C  from t1
union 
select a2 as A, b2 as B,c2 as C  from t2

#3


1、你的错误是dataGridView2没有列导致的,度娘找个demo学习下dataGridView控件怎么使用
2、你的sql语句可以改成
string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'"
                                            +"union all select " + Voltage + " from 电压质量 where 电站编号='" + textBox7.Text + "'";

在sql server中union all是合并结果集

#4


不太清楚是哪里的问题,初学,不知道select后,数据是怎么存在ds里的
学习下ado.net的基础知识

#5


你  string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'" ......
查询的结果中只有一列
并不存在 dataGridView2.Columns[1]

再说你联合的两个 select 子句,缺少 union!
根本就是错的,并不可能查询出结果

#6


   string sql = "select " + QEEP + " from 电能质量 where 电站编号='" + textBox7.Text + "'"
                                            +" union select " + Voltage + " from 电压质量 where 电站编号='" + textBox7.Text + "'";