收录日期:2020/06/01 04:27:51 时间: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的对象关系

一个简单问题!!急用!请指教!! apache安装为何找不到httpd.conf文件(100分马上) 请问应该怎样该一个表的名字? 为什么我的网关机(xp)装好ccproxy5.3并注册了以后,总是有一部分电脑可以上网,另一部分不行!急,在线等待... 如何设置smtp服务器??? 求助!为什么我在本机win2k+tomcat+mysql下正常,可到远端liunx下就显示乱码呢? 关于数据更新的一个问题?(觉得有点难度,版主进来看看吧) 登陆到域能有什么用处 一个snmp报文的问题? 菜鸟问题,Ado如何连接Oracle 数据库 treeview,listview的问题,请帮忙!急 关于显示字段? 如何在DBGrid里加一列复选框? 请问用VIVX编解码时,压缩后的数据是否可以用不同的图象大小解码 想做程序员打工,没有工作经验,怎么开始?谢谢! 有关DB_Base m_Info[TFNUMMAX];和DB_Base *m_Info;区别的问题? qq号被盗有没有办法把它取回 一个写好的servlet程序应该以什么后缀名保存,如何在IE中访问 两台很远的电脑(大约2000KM),如何联网?有哪些方法? 删我帖子的斑竹请进来说两句吧。 送分来了,哈哈。 VC里有没有提供无限2维数组函数 请教相关Delphi的若干问题!感谢相助!! 转让WEBOA系统。 DBGrid控件的使用问题,点击列头进行排序。 一个简单的问题,up有分 showModalDialog的問題 ReportMachine的问题 安装exchange 2000 server 的问题…… 怎样把主窗口上的Caption字体从右向左移动