DataSet问题

jfl011227 2009-11-26 07:15:18
我想从多个表中取出不同字段作为登录密码。
当我把这些数据放入DataSet表中,怎么取出这些密码,然后与输入的密码进行比较?
由于是新手,请大家帮个忙,谢谢!!!
...全文
115 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghuide0112 2009-11-27
  • 打赏
  • 举报
回复
你用Datatable 接受,然后用两个For循环读出来 就行了啊。

例如:
dataAdapter a=new dataAdapter ();
dataset set=new dataset ();
a.fill(set,"你的数据库表名");
datatable d=set.table["表名"];

for(int i=0;i<d.Columns.Count;i++)
{
for(int j=0;j<d.Columns.Count;j++)
{
Response.Write(d.Rows[i][j]);
}

}
l171147904 2009-11-27
  • 打赏
  • 举报
回复
dataset没查出记录,肯定datatable为空,你哪样取肯定提示错误,比较之前判断一下datatable数据为空不
if(ds.tables[0].rows.count>0)



楼主 逻辑有问题,你那语法写出来
结果
id PWD
1 11
2 23
3 gh
4 ty

其实你的密码应该是 1123ghty

你只有 第一行去比较??? 11 。。。。什么和什么

何况 你应该用 union all , 而非 union
fyqwork 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wdgcs 的回复:]
dataset没查出记录,肯定datatable为空,你哪样取肯定提示错误,比较之前判断一下datatable数据为空不
if(ds.tables[0].rows.count>0)
{
if (ds.Tables[0].Rows[0]["m_pwd"]==userpwd)
        {
            return true;
        }
        else
        {
            return false;
        }
}
else
{
return false;
}
[/Quote]

up
coverallwangp 2009-11-27
  • 打赏
  • 举报
回复

string pe = "select m_pwd from manager where m_name='" + userpwd + "'union select s_no from student where s_no='" + userpwd + "'";
//我觉得就是这一句出错了
coverallwangp 2009-11-27
  • 打赏
  • 举报
回复
我觉得是你的SQL语句不对,你Union的两个部分的查询字段应该是相同的(比如都是查询的m_pwd字段);
并且,Union之后是两部分的集合,并不是你说的拼接两个部分。

不知道我领会你的意思没有
Jelly_tracy 2009-11-27
  • 打赏
  • 举报
回复
位置0处没有任何行,说明现在里面是空的,你做一下判断就好了
Wayne 2009-11-26
  • 打赏
  • 举报
回复
在操作DataSet的时候,为了确保代码够健壮,最好做好判断,
不要一上来就开始取数据,很容易导致空指针异常
类似以下的一些判断。。
if(ds!=null&&ds.Tables.Count>0&&ds.Tables[0]!=null&&ds.Tables[0].Rows.Count>0)
{

}
wdgcs 2009-11-26
  • 打赏
  • 举报
回复
dataset没查出记录,肯定datatable为空,你哪样取肯定提示错误,比较之前判断一下datatable数据为空不
if(ds.tables[0].rows.count>0)
{
if (ds.Tables[0].Rows[0]["m_pwd"]==userpwd)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
jfl011227 2009-11-26
  • 打赏
  • 举报
回复
自己顶一个。
哪位好心人帮个忙吧!!!
jfl011227 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sk_aqi 的回复:]
select m_pwd as m_pwd from manager where m_name='" + userpwd + "'union select s_no as m_pwd from student where s_no='" + userpwd + "'";
sql语句中要把字段设置成一样的"as m_pwd"
[/Quote]
还是出现以上问题,当输入错误密码时,就提示:{"在位置 0 处没有任何行。"}
SK_Aqi 2009-11-26
  • 打赏
  • 举报
回复
select m_pwd as m_pwd from manager where m_name='" + userpwd + "'union select s_no as m_pwd from student where s_no='" + userpwd + "'";
sql语句中要把字段设置成一样的"as m_pwd"
jfl011227 2009-11-26
  • 打赏
  • 举报
回复
可以上方法,当输入错误的信息时,就出问题了!
{"在位置 0 处没有任何行。"}
这是怎么回事啊?
jfl011227 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xifenfei 的回复:]
ds.datatable[0].rows[0]["字段"]+ds.datatable[1].rows[0]["字段"]+。。。。。。。
[/Quote]

我是这样集合数据的:
string pe = "select m_pwd from manager where m_name='" + userpwd + "'union select s_no from student where s_no='" + userpwd + "'";// union select t_name from teacher where t_name='"+username+"'";
.....
SqlDataAdapter sda = new SqlDataAdapter(pe, con);
DataSet ds = new DataSet();
sda.Fill(ds);
if (ds.Tables[0].Rows[0]["m_pwd"]==userpwd)
{
return true;
}
else
{
return false;
}
  • 打赏
  • 举报
回复
ds.datatable[0].rows[0]["字段"]+ds.datatable[1].rows[0]["字段"]+。。。。。。。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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