using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
我看某些sqlhelper类写的执行sql语句返回数据都是返回DataSet,而使用时,还有取它的tables[0],其实把DataSet换成DataTable,如下,不行吗?
using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataTable dt = new DataTable();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(dt, "dt");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }

解决方案 »

  1.   

    行,为什么不行?
    只不过,DataSet有Update方法,DataTable有吗?
      

  2.   

    这种情况我也喜欢这么写:           using (SqlConnection connection = new SqlConnection(connectionString))
               {
                    DataSet ds = new DataSet();
                    try
                    {
                        SqlDataAdapter da= new SqlDataAdapter(SQLString, connection);
                        da.Fill(ds);
                    }
                    catch (SqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    return ds.Tables[0]; //这里返回DataTable
                }
      

  3.   

    根据需要,dataset有多表
    速度 DataReader > (DataReader + IList) >DataSet  
    泛型使用比较多
      

  4.   

    恩,lz说的完全可以啊,但是想楼上说的这种情况,用lz说的就无法解决了。。根据个人习惯吧。。想怎么写就怎么写。。程序的多元化吗。。呵呵
      

  5.   

    一定可以的。
    只是个人认为如果用DataSet的话比较好用点。SQLHelper一般都是作通用一点的。。你如果只局限于DataTable,很多操作会受到限制,比如说Update,父子关系之类的东西不就用不了了么?