有个问题不解,希望高手指教假如现有一个数据表A,在A上有一个查询QueryA。
A与QueryA都作为DataTable加入到数据源的XSD中(使用VS 2005)。
现在如果修改了内存中A的某行,怎么使内存中QueryA的结果也相应的改变。

解决方案 »

  1.   

    QueryA是指SQL语句吗?可以从服务器重新Requery,或直接用DataTable.Select
      

  2.   

    你可以通过当前A中记录的关键字,在QueryA所在的DataTable中找到此纪录(使用DataTable.Select方法),然后做类似的修改。
      

  3.   

    谢谢两位的解答。
    其实实际情况要复杂些,QueryA是基于表A,表B的连接查询,当内存中DataTable A的内容变动之后,QueryA也应该做出相应的改动,但是这个同步的功能似乎并没有内置在Framework中,只能通过手动更改QueryA中的相应项目,就如Knight94(愚翁)所说,现在我的实现也是如此。
    但是当有许多Query的时候就很不方便而且容易出错,所以我想问一下有没有内置的解决方案。
      

  4.   

    如果对于QueryA以及A这两个表来说,如果数据都是一样的话,
    为什么不把其中一个做成另外一个的DataView呢。
      

  5.   

    DataView 似乎只能针对单张表吧,QueryA(叫QueryAB应该更合理些)连接查询表A和表B,应该不能使用DataView,不知道我的理解有没有错。请教。
      

  6.   

    to DataView 似乎只能针对单张表吧,QueryA(叫QueryAB应该更合理些)连接查询表A和表B,应该不能使用DataView,不知道我的理解有没有错。请教。不能完全这么说,只能说DataView逃不出DataTable的范围。现在还不能明白你的QueryA与A有什么关联,以及有什么区别。
      

  7.   

    不好意思,说明一下,比如:
    表A中的字段 CustomerID CustomerName
    表B中的字段 ProjectID ProjectName CustomerID,表B通过CustomerID字段与表A连接
    QueryAB为
    SELECT A.CustomerName, B.ProjectID, B.ProjectName
    FROM A LEFT JOIN B ON A.CustomerID = B.CustomerID;
    是否可以让DataView体现出这样的连接查询?谢谢!
      

  8.   

    首先我觉得搂主有个错误的误区。 因为在数据库中是通过关联查询。所以他的纪录取出来的时候统一放在一个 DataTable 中。 这样就作为临时的数据源。 DataView 对 DataTable 的操作是完全的没有问题。 因为是临时的数据源。
      

  9.   

    不好意思,hy98521(斯达克) ,我没太看懂你想表达什么意思,能说得详细一些么。谢谢。
    DataTable本身就是内存中的数据表,这个没有问题,我的问题是用DataView能不能对两张关联的DataTable进行连接查询,以我现在的理解似乎不可以。
      

  10.   

    把这个SQL填充到一个DataTable//SQL
    string strSQL="";
    strSQL+="\n"+"SELECT A.CustomerName, B.ProjectID, B.ProjectName";
    strSQL+="\n"+FROM A LEFT JOIN B ON A.CustomerID = B.CustomerID;//设置
    SqlCommand cmd=New SqlCommand(strSQL,..);
    SqlDataAdapter dataAdapter=New SqlDataAdapter(..)
    dataAdapter.SelectCommand=cmd;//填充到DataTable
    DataTable dtProjectInfo=New DataTable("ProjectInfo");
    dataAdapter.Fill(dtProjectInfo);//显示
    this.DataGridView1.DataSource=dtProjectInfo.DefaultView();
      

  11.   

    是否可以试一下
    ADO.NET 中的表达式
    http://www.microsoft.com/china/MSDN/library/data/dataAccess/ADONETEXP.mspx