收录日期:2019/11/19 16:40:24 时间:2016/07/26 19:55:48 标签:C#
就是程序里有个变量A

有个要查找的数值m

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

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



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

用DataSet?还是DataTable呢?

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


小弟初学,还望大家多多指教
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();
 }
}
还有别的方法么?
用datatable 和datarow 也可以 啊 
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();
}
引用 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 &amp……

正解 
string s=dr["id"].ToString();

这个里面的“id”是什么呢??

//记得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 
哦,你要取一条 记录。 那就更简单了。


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;
                    }
                }
             }
}





就一楼的方法最通用了,

另外也可以用,SqlCommand.ExucteScalar,仅返回一个数据,也就是说你只返回一个查询值的话这样也可以
用 
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 

}
 
object

datatable

dataset

List<T>

放在哪里并不重要,最终还要知道ADO的对象关系

Error loop up 的问题 类似于qq等级的数据库设计及存储过程 grouby 查询出的结果 不能操作 请高手指教 知道怎么有方法把这个域名弄回来吗。 hzpinyin控件 知道怎么有方法把这个域名弄回来吗。 50分请教:关于发布网站的问题,请指点一下!!!! 新手上路简单问题 如何才能对TXT里面的数据重新排序。 MSMQ偶尔无法接收本地消息包,是否消息包堵塞? 如何在csdn上在线读书? 求一个 关于统计的查询 如何实现DBGrid滑动条位置的控制? 50RMB,求真正做过VS2005+SQL SERVER 2000打包发布的老师,帮做一个ASP.NET项目的打包!! Java 模糊查询 技术和服务最好的互联网服务提供商 怎么对比图片 VC++ MFC 求助关于多文档视图绘图的问题 请教MDI子窗体的机制 急,百度快照还是5月7日,怎么办 为什么在驱动程序中使用非分页(双向)链表时,要使用自旋锁进行同步? 第一次发贴,问一下,每次提问完,说要及时结贴,不知道怎么结贴,问题弱弱的,别介意~~~ 寻求.NET业务规则引擎 画图中的文字镜像 怎么实现 我用MYECLIPSE构建了一个spring+hibernate的WEB项目,spring MVC时出错! 计算机语言的本质是什么 Repeater如何绑定动态生成的图片控件? 求平均值最大值解决办法 jstl标签问题。 将sql2005存储过程转为mysql存储过程