读数据赋值的问题,还是没懂,麻烦各位给解答一下,谢谢了!!!

caterpillar12345 2010-09-08 06:39:51
就是程序里有个变量A

有个要查找的数值m

数据库中有个表T,有字段X,Y等

现在要找到T中,X字段值等于m的行,然后返回Y的值赋给A



查找用select这个知道,找到的肯定是一行数据,那这行数据放在哪里了?怎么才能把这里面的Y值给A呢?

用DataSet?还是DataTable呢?

两个用法都看了一下,但还是不太明白,希望大家能给解答一下


小弟初学,还望大家多多指教
...全文
105 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
createTim 2010-09-09
  • 打赏
  • 举报
回复
object

datatable

dataset

List<T>

放在哪里并不重要,最终还要知道ADO的对象关系
纯唇Yu弄 2010-09-09
  • 打赏
  • 举报
回复

cmd.ExecuteScalar() 方法 返回首行首列的值

SQL 语句:
select Y from T where X=m


using(SqlConnection conn=new SqlConnection(""))
{
Object obj=null;
SqlCommand cmd=new SqlCommand("select Y from T where X='"+m+"'",conn);
conn.open();
obj=cmd.ExecuteScalar();
//取得obj判断下非空 转换为A的类型 赋给A

}
josxhn 2010-09-09
  • 打赏
  • 举报
回复
就一楼的方法最通用了,

另外也可以用,SqlCommand.ExucteScalar,仅返回一个数据,也就是说你只返回一个查询值的话这样也可以
gongsun 2010-09-09
  • 打赏
  • 举报
回复
哦,你要取一条 记录。 那就更简单了。


public T T_Y_Select(int m)
{
Database db = DatabaseFactory.CreateDatabase("数据库名");
using (DbCommand command = db.GetSqlStringCommand("select * from T where Y="+m))
{
using (IDataReader reader = db.ExecuteReader(command))
{
while (reader.Read())
{
return reader;
}
}
}
}





gongsun 2010-09-09
  • 打赏
  • 举报
回复

//记得using
using Microsoft.Practices.EnterpriseLibrary.Data;

public List<T> T_Y_Select(int m)
{
List<T> obj = new List<T>();
Database db = DatabaseFactory.CreateDatabase("数据库名");
using (DbCommand command = db.GetSqlStringCommand("select * from T where Y="+m))
{
using (IDataReader reader = db.ExecuteReader(command))
{
while (reader.Read())
{
obj.Add(reader)
}
}
return obj;
}
}


不要用 datatable,dataset
caterpillar12345 2010-09-09
  • 打赏
  • 举报
回复
string s=dr["id"].ToString();

这个里面的“id”是什么呢??
bomeixinxin 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
using(SqlConnection conn=new SqlConnection(""))
{
SqlCommand cmd=new SqlCommand("select * from tb where X='"+A+"'",conn);
conn.open();
SqlDataReader dr=cmd.ExecuteReader();
if(dr.HasEows &……
[/Quote]
正解
chazikai24 2010-09-09
  • 打赏
  • 举报
回复
oracle数据库的
string sql ="select * from tb where X='"+A+"'";
OracleDataAdapter oda = new OracleDataAdapter(sql, Conn);//Conn是数据库连接语句
datatable dt = new datatable();
oda.fill(dt);
for (int i = 0;i<dt.rows.count;i++)
{
string A= dt.rows[i]["Y"].tostring();
}
harker007 2010-09-09
  • 打赏
  • 举报
回复
用datatable 和datarow 也可以 啊
caterpillar12345 2010-09-08
  • 打赏
  • 举报
回复
还有别的方法么?
wuyq11 2010-09-08
  • 打赏
  • 举报
回复
using(SqlConnection conn=new SqlConnection(""))
{
SqlCommand cmd=new SqlCommand("select * from tb where X='"+A+"'",conn);
conn.open();
SqlDataReader dr=cmd.ExecuteReader();
if(dr.HasEows && dr.Read())
{
string s=dr["id"].ToString();
}
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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