请大家原谅下,我是新手,有几个问题还不是很明白,看书也找不到想要的答案,
1.使用ADO.net操作数据库最佳的性能是否需要用DataSet?2.我们在工程里面建立DataSet,怎么都是需要先建立好数据库的连接才能使用DataSet。
那么这样建立之后,假如我把程序拿到其他机器,不是不能使用了吗?到底DataSet可不可以动态来生成呢?/*我是这样理解的:假如我的数据库SA密码为123,其他机器的SA密码则是222,那么我在工程里面都是建立好连接,生成的EXE拿到其他机器不是
不能使用了。*/

解决方案 »

  1.   

    数据库连接可以在XML文件中配置,到其他机器的时候,修改下配置文件就可以了
      

  2.   

    如果是少量数据,并且不需要做多次操作,用SqlDataReader,因为它是前向执行的,速度很快
    如果是大量的数据,可能会多次操作,用DataSet
      

  3.   

    是啊,可以用XML文件,WINFROM程序可以在APP.CONFIG里面配置连接信息,WEB程序可以在WEB.CONFIG里面配置
    连接和DATASET 是可以动态生成的
      

  4.   

    使用DataSet确实可以使编码简化,但是它在性能和内存上没有一点儿优势。自己测一下就知道了。1/3吧
      

  5.   

    1. SqlConnection con=new SqlConnection("数据库连接字符串"); 
    打开数据库连接 
    2. string sqlstr=" 所要执行的命令"; 
    如果查询的命令 
      Dataset ds=new DataSet() 
    SqlDataAdapter sda=new SqldataAdapter=(sqlstr,con); 
    sda.Fill(ds,"tablename"); 
      DataTable dt=ds.Tables[0]; 
      DataTable,DataView使用起来都比较快捷; 
    3. SqlCommand cmd=new Sqlcommand() 
    cmd.Connection=con; 
    cmd.CommandText="所要执行的命令";//可以带参数 
    con.Open(); 
    cmd.ExecuteNonQuery(); 
      

  6.   

    1.使用ADO.net操作数据库最佳的性能是否需要用DataSet?
    你要理解DataSet或是DataTable和DataReader之间的区别.然后根据实际需要,自己决定DataSet是离线的数据集,不需要保持数据库连接,存在于内存中
    DataReader是一直保持数据库连接.数据读取速度比较快DataSet/DataTable一般是通过DataAdapter来填充数据库中的数据,反编译DataAdapter.Fill方法可以看到,其内部就是用去DataReader来完成填充操作

    2.我们在工程里面建立DataSet,怎么都是需要先建立好数据库的连接才能使用DataSet。
    那么这样建立之后,假如我把程序拿到其他机器,不是不能使用了吗?到底DataSet可不可以动态来生成呢?数据库的连接可以做配置,例如写在web.config或app.config文件中.
    DataSet当然可以动态生成了using (SqlConnection connection =
                           new SqlConnection(connectionString))
    {
           SqlDataAdapter adapter = new SqlDataAdapter("sql语句",connection);
           DataSet ds = new DataSet();
           adapter.Fill(ds);
    }
      

  7.   

    数据库的连接字符串,不要写在程序里面,要写在配置文件中,app.config  or  web.configdataset适合于对数据取出后,再次进行其他操作,比如再次过滤数据。也适合直接把数据集传递给grid控件。
    如果要把数据读取到model中,适合用sqlreader,执行速度快。
      

  8.   

    不如把参数都写到INI文件里,然后在连接字符串中调用就行了,不管在哪台机器上,都可以的,
    DataSet不是很好,DataReader不错的。
    网上有很多相关的例子,你可以参考。
    或者写成通用类。
      

  9.   

    楼主不是发过一贴了
    怎么还没明白看看msdn好了你的理解是错误的
    一般程序都把连接字符串放到配置文件里面
    然后如果程序移植到别的地方了,只用修改下配置文件
    不用再修改编译程序。
      

  10.   

    <connectionStrings>
    <add name="SQLConnString1" connectionString="server=.;database=DB;user id=sa;password=sa;" providerName="System.Data.SqlClient"/>
    </connectionStrings>配置文件中格式
      

  11.   

    你的连接语句可以在Web.Config里面写的,拿到别的机器上,只要改变连接语句就可以了,另外DataSet你可以把他理解为一种虚拟数据库,并不是真正的数据库,他存储的表都在内存中的
      

  12.   

    1,万事没有绝对,看你操作的数据量大小和操作频繁度,还有就是进行什么样的操作。不是说全用READ就好,也不是说所有的都是DATASET就好,包括用存储过程,是凭经验做的,多积累经验吧。2,LZ所说的是用DATASET控件吗?那个调试很麻烦的,如果改数据结构了,那就更可怕了