C#窗体中DataGridView显示数据的问题
我在做窗体时,要做一个查询,将结果显示在DataGridView中,我想要显示成这样:数据库中的两个表如下图,其中STUDENTS.SFNO与FACULTY.FNO是外键...
我在做窗体时,要做一个查询,将结果显示在DataGridView中,我想要显示成这样:
数据库中的两个表如下图,其中STUDENTS.SFNO与FACULTY.FNO是外键关系
查询代码如下:
MyData.getCon();
string sql = "select STUDENTS.SNO AS 学号,STUDENTS.SNAME AS 姓名,STUDENTS.SSEX AS 性别,STUDENTS.SAGE AS 年龄,FACULTY.FNAME AS 院系,STUDENTS.SADD AS 住址 from STUDENTS INNER JOIN FACULTY ON STUDENTS.SFNO = FACULTY.FNO where STUDENTS.SNO = '" + this.txtNO.Text + "' and STUDENTS.SNAME like '" + this.txtName.Text + "%' and STUDENTS.SFNO = '" + this.cboFaculty.SelectedValue + "'";
SqlDataAdapter sda = new SqlDataAdapter(sql,MyData.myCon);
DataSet dt = new DataSet();
sda.Fill(dt);
this.dataGridView1.DataSource = dt.Tables[0];
MyData.CloseCon();
结果运行出来,显示的是下图,根本就不是我想要的那样,:
MyData是我建立的一个公共类,里面有数据库的连接方法等,T-sql语句在查询分析器里测试是没问题的,测试的结果就是第一张图。
到底是哪里出问题了?? 展开
数据库中的两个表如下图,其中STUDENTS.SFNO与FACULTY.FNO是外键关系
查询代码如下:
MyData.getCon();
string sql = "select STUDENTS.SNO AS 学号,STUDENTS.SNAME AS 姓名,STUDENTS.SSEX AS 性别,STUDENTS.SAGE AS 年龄,FACULTY.FNAME AS 院系,STUDENTS.SADD AS 住址 from STUDENTS INNER JOIN FACULTY ON STUDENTS.SFNO = FACULTY.FNO where STUDENTS.SNO = '" + this.txtNO.Text + "' and STUDENTS.SNAME like '" + this.txtName.Text + "%' and STUDENTS.SFNO = '" + this.cboFaculty.SelectedValue + "'";
SqlDataAdapter sda = new SqlDataAdapter(sql,MyData.myCon);
DataSet dt = new DataSet();
sda.Fill(dt);
this.dataGridView1.DataSource = dt.Tables[0];
MyData.CloseCon();
结果运行出来,显示的是下图,根本就不是我想要的那样,:
MyData是我建立的一个公共类,里面有数据库的连接方法等,T-sql语句在查询分析器里测试是没问题的,测试的结果就是第一张图。
到底是哪里出问题了?? 展开
展开全部
你不嫌你的SQL语句太乱吗?最好用格式字符串,我写了一个,你可以试试。 string sql = String.Format(@"select STUDENTS.SNO AS 学号,STUDENTS.SNAME AS 姓名,STUDENTS.SSEX AS 性别,STUDENTS.SAGE AS 年龄,FACULTY.FNAME AS 院系,STUDENTS.SADD AS 住址
from STUDENTS
INNER JOIN FACULTY
ON STUDENTS.SFNO = FACULTY.FNO
where STUDENTS.SNO = '{0}' and STUDENTS.SNAME like '{1}%' and STUDENTS.SFNO = '{2}'", this.txtNO.Text, this.txtName.Text, this.cboFaculty.SelectedValue);
from STUDENTS
INNER JOIN FACULTY
ON STUDENTS.SFNO = FACULTY.FNO
where STUDENTS.SNO = '{0}' and STUDENTS.SNAME like '{1}%' and STUDENTS.SFNO = '{2}'", this.txtNO.Text, this.txtName.Text, this.cboFaculty.SelectedValue);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MyData.myCon.open();//打开连接没
追问
肯定打开了, MyData.getCon(); getcon方法就是连接数据库并打开
追答
断点调试.....看输出SQL语句.......看有没有问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql的where语句有问题,去掉试试看。不知道你的where想表达什么。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询