.net中如何循环遍历多个select值并赋值给同一个变量

[复制链接]
查看11 | 回复7 | 2021-1-27 07:20:00 | 显示全部楼层 |阅读模式
VS2012,C#语言,SQL2012
主要问题在数据库表中select出来的值有多个如何将这多个结果依次赋值给同一个变量(用来在gridview中显示)
实例如:
stringchoice="selectCourseIdfromSelectCoursewhereStuid='"+Session["UserName"].ToString()+"'";
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
con.Open();
SqlCommandced=newSqlCommand(choice,con);
SqlDataReaderdr=ced.ExecuteReader();
if(dr.Read())
{
stringCid=ced.ExecuteReader().ToString();
dr.NextResult();
stringsql="select*fromCoursewhereCourseID='"+Cid+"'";
SqlDataAdapterda=newSqlDataAdapter(sql,con);
DataSetds=newDataSet();
da.Fill(ds);
returnds;
}
就是在SelectCourse这张表中有两个字段学号和课程编号一个学号选了多门课程所以select一个学号所选的课程编号结果会有多个将这些课程编号赋值给变量Cid然后在另一张Course表中将课程编号为Cid的课程的相关信息在gridview中填充并显示出来这段代码该怎么改求大神指导在网上找过很多方法试过遍历dataset试过LIST等等都没做好怎么办呀
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
两张表做关联查询行吗?
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
用list
list.add(查询结果)
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
引用1楼sinat_28984567的回复:两张表做关联查询行吗?关联查询具体怎么做呢能不能在VS里用代码语句实现。。
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
引用2楼caozhy的回复:用list
list.add(查询结果)
我有试过用LIST不过最后还是达不到要实现的效果能不能写几句核心的给我看看或者说能不能用for或foreach给一个变量依次赋值
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
select*fromselectcourseainnerjoincoursebona.cid=b.cid
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
你说了这么多就是想把另外一张表中的数据查询出来,你把两句sql整合为一句不就行了。
stringchoice="selectCourseIdfromSelectCourseainnerjoinCoursebona.CourseID=b.CourseIDwherea.Stuid='"+Session["UserName"].ToString()+"'";
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
con.Open();
SqlCommandced=newSqlCommand(choice,con);
SqlDataAdapterda=newSqlDataAdapter(choice,con);
DataSetds=newDataSet();
da.Fill(ds);
returnds;
建议最好使用存储过程,记得关闭连接
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
引用6楼zhongqingshen的回复:你说了这么多就是想把另外一张表中的数据查询出来,你把两句sql整合为一句不就行了。
stringchoice="selectCourseIdfromSelectCourseainnerjoinCoursebona.CourseID=b.CourseIDwherea.Stuid='"+Session["UserName"].ToString()+"'";
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
con.Open();
SqlCommandced=newSqlCommand(choice,con);
SqlDataAdapterda=newSqlDataAdapter(choice,con);
DataSetds=newDataSet();
da.Fill(ds);
returnds;
建议最好使用存储过程,记得关闭连接
恩恩我已经解决了是用这个的方法还是谢谢啦然后我在Gridview中显示出已选课程后想实现单击一行实现退选该课程的功能我的代码如下
protectedvoiddlinfo_SelectedIndexChanging(objectsender,GridViewSelectEventArgse)
{stringtemp=((Label)(dlinfo.Rows[e.NewSelectedIndex].FindControl("courseID"))).Text;
SqlConnectioncon=newSqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
con.Open();
stringdelete_sql="deletefromSelectCoursewhereCourseId='"+temp+"'andStuid='"+Session["UserName"].ToString()+"'";
SqlCommandcmd=newSqlCommand(delete_sql,con);
if(cmd.ExecuteNonQuery()>0)
{
Response.Write("");
}
else
{
Response.Write("");
return;
}
getinfo();
con.Close();
}
可是在测试的时候点退出选课老是提示操作失败我想是不是哪个查找CourseID的语句不对?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行