就是程序里有个变量A有个要查找的数值m数据库中有个表T,有字段X,Y等现在要找到T中,X字段值等于m的行,然后返回Y的值赋给A查找用select这个知道,找到的肯定是一行数据,那这行数据放在哪里了?怎么才能把这里面的Y值给A呢?用DataSet?还是DataTable呢?两个用法都看了一下,但还是不太明白,希望大家能给解答一下
小弟初学,还望大家多多指教

解决方案 »

  1.   

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

  2.   

    用datatable 和datarow 也可以 啊 
      

  3.   

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

  4.   

    string s=dr["id"].ToString();这个里面的“id”是什么呢??
      

  5.   


    //记得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 
      

  6.   

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

  7.   

    就一楼的方法最通用了,另外也可以用,SqlCommand.ExucteScalar,仅返回一个数据,也就是说你只返回一个查询值的话这样也可以
      

  8.   

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

  9.   

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