如何让内存中的DataTable与数据库的表连接?

piao2004 2009-08-10 10:58:19
Asp.net开发中,内存中有个DataTable,设:

DataTable dt;
dt.Columns.Add("user_id",typeof(int));
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);
dt.Rows.Add(4);
dt.Rows.Add(5);
dt.Rows.Add(6);
dt.Rows.Add(7);
dt.Rows.Add(8);
dt.Rows.Add(9);
dt.Rows.Add(10);


也就是说:DataTable中只会记录会员表中的ID值,但现在要显示出来,自然要通过会员ID(user_id)去会员表中查找会员名称:

foreach (DataRow in dt.Rows)
{
user_id=int.Parse(dr["user_id"]);
sql="select user_name from 会员表 where user_id=" + user_id;
user_name=/执行sql语句的返回值
}


那么,这样一来,DataTable中有x行,就要读x次数据库,如果行数较少还好,一旦行数太多,自然会降低了效率,请问有什么办法可以一次性把user_id in DataTable中的会员全部读出来?谢谢!
...全文
260 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
piao2004 2009-08-18
  • 打赏
  • 举报
回复
没合适的答案,不过还是谢谢楼主各位,结帖。
华夏小卒 2009-08-11
  • 打赏
  • 举报
回复

可以一下判断的吧

sql.Open();
string check="select count(*)from user_table where user_id='"+textBox1.Text+"' and user_pwd='"+textBox2.Text+"'and user_bm='"+comboBox1.SelectedItem+"'";
SqlCommand com=new SqlCommand(check,sql);
Int32 count=(Int32)com.ExecuteScalar();
sql.Close();
if(count>0)
{
bm=comboBox1.SelectedItem.ToString();
this.Hide();
main m=new main();
m.ShowDialog();
this.Close();
}
else
{
MessageBox.Show("用户名、密码或部门错误!");
}
soft_wsx 2009-08-10
  • 打赏
  • 举报
回复
楼主还是把贴子移动的开发语言/C++去问一下吧!这里的人是数据库高手。其它不好说!
pt1314917 2009-08-10
  • 打赏
  • 举报
回复
//先将datatable中的id组合成一个字符串,类似"1,2,3,4"这种形式的,再传到SQL语句中去,
如:string sql="select user_id,user_name from 会员表 where user_id in("+组合的字符串+")";
这样就行咯。

pt1314917 2009-08-10
  • 打赏
  • 举报
回复

//先将datatable中的id组合成一个字符串,类似"1,2,3,4"这种形式的,再传到SQL语句中去,如:string sql="select user_id,user_name from 会员表 where user_id in("+组合的字符串+")";
这样就行咯。
piao2004 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiangshun 的回复:]
1.就保存列记录用datetable性能肯定跟不上arrylist或者数组
2.既然你的值是手动填充的,为什么不直接写sql语句呢?user_id in (1,2,3 ....)
[/Quote]

我是在问问题时举个例,程序中DataTable的数据行怎么可能是像问题所示中手工加上去的!
--小F-- 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiangshun 的回复:]
1.就保存列记录用datetable性能肯定跟不上arrylist或者数组
2.既然你的值是手动填充的,为什么不直接写sql语句呢?user_id in (1,2,3 ....)
[/Quote]

赞成
kncomputer 2009-08-10
  • 打赏
  • 举报
回复
愿闻其详!谢谢!
jiangshun 2009-08-10
  • 打赏
  • 举报
回复
1.就保存列记录用datetable性能肯定跟不上arrylist或者数组
2.既然你的值是手动填充的,为什么不直接写sql语句呢?user_id in (1,2,3 ....)
黄_瓜 2009-08-10
  • 打赏
  • 举报
回复
这个是DataTable的详细用法,你看看吧

http://blog.csdn.net/hcw_peter/archive/2009/03/11/3980723.aspx
feixianxxx 2009-08-10
  • 打赏
  • 举报
回复
bang ding
SQL77 2009-08-10
  • 打赏
  • 举报
回复
绑定数据源

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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