当前位置: 代码迷 >> ASP.NET >> ASP.NET2.0中插入、删除、查询、修改记录这么多方法,究竟哪种最通用,最常用?100分全给,该怎么解决
  详细解决方案

ASP.NET2.0中插入、删除、查询、修改记录这么多方法,究竟哪种最通用,最常用?100分全给,该怎么解决

热度:6889   发布时间:2013-02-25 00:00:00.0
ASP.NET2.0中插入、删除、查询、修改记录这么多方法,究竟哪种最通用,最常用?100分全给
现在有个问题困扰我很长时间,我是从asp直接转到asp.net2.0的,在ASP.NET2.0中对数据库进行插入、删除、查询、修改四项操作时,我发现有好种方法,现在我搞不清该用哪种:

1.   最初我用SqlDataSource+GridView之类的快捷操作,但不久发现这个方法只在简单的情况下快捷,不通用,不灵活。

2.后来用Command,类似下面的方法:

  SqlCommand   command   =   new   SqlCommand( "INSERT   INTO   UserPhoto   (UserName,ContentType,Photo) "   +
        "VALUES   (@UserName,@ContentType,@Photo) ",   myConnection);
//使用Parameters.AddWithValue实现对参数的赋值
        command.Parameters.AddWithValue( "@UserName ",   TextBox1.Text);
        command.Parameters.AddWithValue( "@ContentType ",   fileType);
        command.Parameters.AddWithValue( "@Photo ",   fileData);
        //打开连接,执行查询
        myConnection.Open();
        command.ExecuteNonQuery();
        myConnection.Close();


2.又发现有人使用SqlDataSource,类似下面的代码:

    protected   void   btnInsert_Click(object   sender,   EventArgs   e)
        {
                SqlDataSource   sds   =   new   SqlDataSource();
                sds.ConnectionString   =   ConfigurationManager.ConnectionStrings[ "ConnStr "].ToString();
                sds.InsertCommand   =   "Insert   into   T_Product(F_Name,F_Price,F_Unit)   values(@Name,@Price,@Unit) ";
                sds.InsertParameters.Add( "Name ",   txtName.Text.Trim());
                sds.InsertParameters.Add( "Price ",   txtPrice.Text.Trim());
                sds.InsertParameters.Add( "Unit ",   txtUnit.Text.Trim());
                sds.Insert();
       
        }

3.有人直接用DataSet,操作行对象、列对象

4.有人创建一个数据操作的类,将用到的各个插入、删除、查询等当作类的方法,调用方法来操作数据.

5。还有人在VS2005中新建数据集,创建.xsd文件来执行一些类似操作,有时还配合ObjectDataSource控件


      我现在被搞的晕极了,不知通常情况下,应该用哪种方法,查了一下msdn,好像上面这些方法都能找到影子,但我真想知道哪种方法才是大家最常用的,通用的方法是什么?请高人伸出你热情的手,指点一下吧!

------解决方案--------------------------------------------------------
增 删 改
SQL SERVER我是认为应该放在存储过程里
不仅仅从效率上提升
可能你对增删改有事务的放在存储过程里也能更好的处理
论开发效率 运行效率和维护性 来说 存储过程是最好

查的话 涉及到复杂点的语句我一般也是放在存储过程里

如果非要放在CS里的话 , 一定要参数化SQL语句 最大的好处是可以防止注入
而且维护也相对轻松
------解决方案--------------------------------------------------------
1. 最初我用SqlDataSource+GridView之类的快捷操作,但不久发现这个方法只在简单的情况下快捷,不通用,不灵活。
==================================
这个是给初学者用的,不能实现复杂的功能

2.后来用Command,类似下面的方法:
==================================
这个是纯写代码方式的,适合从2003转过来的


3.又发现有人使用SqlDataSource,类似下面的代码:
==================================
我一般教初学者都是方法 2 + 3,简单的功能用3,复杂的功能用2实现,用3的好处是不用再关心数据库的连接和打开,这些优化的工作可以让SqlDataSource完成

4.有人直接用DataSet,操作行对象、列对象
==================================
如果只是读数据,没必要用4,如果是进行简单的增删改,也没必要用4,如果你要打算对数据进行比较复杂的操作,可以用4,尤其适合winform类应用程序

5.有人创建一个数据操作的类,将用到的各个插入、删除、查询等当作类的方法,调用方法来操作数据.
==================================
使用三层架构的时候经常这样做

6.还有人在VS2005中新建数据集,创建.xsd文件来执行一些类似操作,有时还配合ObjectDataSource控件
  相关解决方案