DataView

创建 DataView 的方法有两种。
1、使用 DataView 构造函数。

以下代码示例演示如何使用 DataView 构造函数来创建 DataView。RowFilter、Sort 列和 DataViewRowState 将与 DataTable 一起提供。
DataView custDV 
=   new  DataView(custDS.Tables[ " Customers " ], 
    
" Country = 'USA' "
    
" ContactName "
    DataViewRowState.CurrentRows);

 

2、创建对 DataTable 的DefaultView 属性的引用。DataView 构造函数可以为空,也可以采用 DataTable 作为单个参数,也可以同时采用 DataTable 与筛选条件、排序条件和行状态筛选器。

     由于在创建 DataView 时以及在修改任何 Sort、RowFilter 或 RowStateFilter 属性时都会生成 DataView 的索引,所以当创建 DataView 时,通过以构造函数参数的形式提供任何初始排序顺序或筛选条件,可以实现最佳性能。如果在不指定排序或筛选条件的情况下创建 DataView,然后设置 Sort、RowFilter 或 RowStateFilter 属性,则会使索引生成至少二次:一次是在创建 DataView 时,另一次是在修改任何排序或筛选属性时。

     请注意,如果使用不采用任何参数的构造函数来创建 DataView,那么在设置 Table 属性之前,将无法使用 DataView。

以下代码演示如何使用该表的 DefaultView 属性获取对 DataTable 的默认 DataView 的引用。
DataView custDV 
=  custDS.Tables[ " Customers " ].DefaultView;

 

使用DataView实例:

 

// 精选互动问答,同时改变精选状态,改为已精选
         private   void  btnChosen_Click( object  sender, System.EventArgs e)
        
{
            
int a=0;
            
int intCount = this.Dg.Items.Count;
            
string ids = "";
            
for(int i=0;i<intCount;i++)
            
{
                CheckBox CheckSingle 
= this.Dg.Items[i].FindControl("CheckSingle"as CheckBox;
                
if(CheckSingle.Checked)
                
{
                    
int ChatInfo_ID = Convert.ToInt32(this.Dg.DataKeys[i].ToString());                            
                    ids 
+= ChatInfo_ID+",";
                }

            }

            
if(ids == "")
            
{
                
//没有选择
                return;
            }

            ids 
= ids.TrimEnd(',');
            
//dataview
            DataTable dt = ViewState["Dg"as DataTable;
            DataView dv 
= dt.DefaultView;
            dv.RowFilter 
= "ChatInfo_ID in ("+ids+")";    
            AccessHelper.DBPath 
= AccessHelper.GetChatThemesDBPath();//固定表

            
if(isCommend==1)
            
{
                
//修改时先删除
                AccessHelper.ExecuteNonQuery("delete from Question where Expert_ID="+Expert_ID);
            }
        

            
for(int i = 0 ; i < dv.Count;i++)
            
{
                
string FormUser_ID = dv[i]["FormUser_ID"].ToString();//专家id
                string FormUserName = dv[i]["FromUserName"].ToString();//专家名
                string ToUser_ID = dv[i]["ToUser_ID"].ToString();//提问者id
                string ToUserName = dv[i]["ToUserName"].ToString();//提问者
                string Question = dv[i]["ExpertAnswer"].ToString();//问题
                string Answer = dv[i]["ChatContent"].ToString();//对问题的回答
                string SendTime = dv[i]["SendTime"].ToString();
                
string ChatInfo_ID = dv[i]["ChatInfo_ID"].ToString();//聊天记录ID
                StringBuilder sb = new StringBuilder();

                sb.Append(
"insert into Question (Expert_ID,ChatInfo_ID,FormUser_ID,FormUserName,ToUser_ID,ToUserName,Question,Answer,SendTime)");
                sb.Append(
" values (");
                sb.Append(
"@Expert_ID,@ChatInfo_ID,@FormUser_ID,@FormUserName,@ToUser_ID,@ToUserName,@Question,@Answer,@SendTime)");
                OleDbParameter[] parameters 
= {
                                                  
                                                  
new OleDbParameter("@Expert_ID", OleDbType.Integer,4),
                                                  
new OleDbParameter("@ChatInfo_ID", OleDbType.Integer,4),
                                                  
new OleDbParameter("@FormUser_ID", OleDbType.Integer,4),
                                                  
new OleDbParameter("@FormUserName", OleDbType.VarChar,50),
                                                  
new OleDbParameter("@ToUser_ID", OleDbType.Integer,4),
                                                  
new OleDbParameter("@ToUserName", OleDbType.VarChar,50),
                                                  
new OleDbParameter("@Question", OleDbType.VarChar,0),
                                                  
new OleDbParameter("@Answer", OleDbType.VarChar,0),
                    
new OleDbParameter("@SendTime", OleDbType.Date)
                                              }
;
                
                parameters[
0].Value = Expert_ID;
                parameters[
1].Value = ChatInfo_ID;
                parameters[
2].Value = FormUser_ID;
                parameters[
3].Value = FormUserName;
                parameters[
4].Value = ToUser_ID;
                parameters[
5].Value = ToUserName;
                parameters[
6].Value = Question;
                parameters[
7].Value = Answer;
                parameters[
8].Value = SendTime;
                AccessHelper.DBPath 
= AccessHelper.GetChatThemesDBPath();//固定表
                a = AccessHelper.ExecuteNonQuery(sb.ToString(),parameters);
            }
    
            
string sql = "update Expert set IsCommend=1 where Expert_ID="+Expert_ID;
            
int b = DataAccess.AccessHelper.ExecuteNonQuery(sql);
            
if(a==1&&b==1)
            
{
                Utils.MessageBoxUrl(
"精选成功,返回上页!","ExpertInter.aspx");

            }

        }

你可能感兴趣的:(view)