博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

ObjectDataSource使用入门详解[视频]

Posted on 2006-06-29 11:51  天轰穿  阅读(5827)  评论(15编辑  收藏  举报
这个控件说心理话,确实很强大,虽然我现在还只懂了点点怎么用!
可是他也确实不容易学,因为这开始我用了很多时间,一直不知道怎么入手,一直到昨天晚上我终于在MSDN上狠看一番,所以终于懂了最粗浅的用法,到此我得出一结论!

这玩意就是不容易入门,一旦知道怎么用了就容易进一步深入!所以把我学的做成视频,希望更多象我一样还徘徊在门外的朋友早点到房里坐下,毕竟现在好热哦!!

视频以及全部代码下载地址是 http://spacenet.supericp.com/thc/ObjectDataSource.rar 

闲话不说了,开工!!!

这个是我开始做的,因为我也  是昨天晚上熬夜的,所以还不是很熟练,呵呵!!先做了一次!

下面是代码片段,如果你看视频没看爽的话,可以直接看这里的片段

返回一个数据表
    string connstring = ConfigurationManager.ConnectionStrings["two"].ConnectionString;
    
//上面这行不用说大家知道,是把数据库连接字符串拿出来,后面要用
    public DataTable dt()
    
{//这个数据控件只能返回那几类,比如sqldataadapter,dataset,datatable还有个什么忘记了,呵呵,这里我们返回一个数据表给前面
        SqlConnection con = new SqlConnection(connstring);
        SqlDataAdapter sda 
= new SqlDataAdapter();
        sda.SelectCommand 
= new SqlCommand("SELECT * FROM [Categories] ORDER BY [CategoryID] DESC",con);//这里我们感觉SQL语句写起来很麻烦不是,所以我想到一个好办法,很简单的
        DataSet ds = new DataSet();
        sda.Fill(ds,
"thc");
        
return ds.Tables["thc"];

        
//到此,这个查询就算完成了,简单撒!!!
    }
返回一个SqlDataReader对象
public SqlDataReader sdr(int CategoryID)
    
{//一个SqlDataReader,这个不支持GridView分页和排序!!
        SqlConnection con = new SqlConnection(constring);
        SqlCommand cmd 
= new SqlCommand("SELECT * FROM [Categories] where [CategoryID]=@CategoryID ORDER BY [CategoryID] DESC", con);
        cmd.Parameters.AddWithValue(
"@CategoryID", CategoryID);
        con.Open();
        SqlDataReader sdr 
= cmd.ExecuteReader(CommandBehavior.CloseConnection);
        
return sdr;
    }
//更新动作
public void update(string CategoryName,string Description,int CategoryID)
    
{//更新
        SqlConnection con = new SqlConnection(constring);
        SqlCommand cmd 
= new SqlCommand("UPDATE [Categories] SET [CategoryName] = @CategoryName, [Description] = @Description WHERE [CategoryID] = @CategoryID", con);
        con.Open();
        cmd.Parameters.AddWithValue(
"@CategoryName",CategoryName);
        cmd.Parameters.AddWithValue(
"@Description", Description);
        cmd.Parameters.AddWithValue(
"@CategoryID", CategoryID);
        cmd.ExecuteNonQuery();
    }
//删除动作
public void delete(int CategoryID)
    

        SqlConnection con 
= new SqlConnection(constring);
        SqlCommand cmd 
= new SqlCommand("DELETE FROM [Categories] WHERE [CategoryID] = @CategoryID", con);
        con.Open();
        cmd.Parameters.AddWithValue(
"@CategoryID", CategoryID);
        cmd.ExecuteNonQuery();
    }
前台调用的代码
 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="dt"
            TypeName
="objdb" UpdateMethod="update" DeleteMethod="delete">
            
<UpdateParameters>
                
<asp:Parameter Name="CategoryName" Type="String" />
                
<asp:Parameter Name="Description" Type="String" />
                
<asp:Parameter Name="CategoryID" Type="Int32" />
            
</UpdateParameters>
            
<DeleteParameters>
                
<asp:Parameter Name="CategoryID" Type="Int32" />
            
</DeleteParameters>
        
</asp:ObjectDataSource>
        
<br />
        
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
            DataSourceID
="ObjectDataSource1" DataKeyNames="CategoryID">
            
<Columns>
                
<asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
            
</Columns>
        
</asp:GridView>