有个问题不解,希望高手指教假如现有一个数据表A,在A上有一个查询QueryA。
A与QueryA都作为DataTable加入到数据源的XSD中(使用VS 2005)。
现在如果修改了内存中A的某行,怎么使内存中QueryA的结果也相应的改变。
A与QueryA都作为DataTable加入到数据源的XSD中(使用VS 2005)。
现在如果修改了内存中A的某行,怎么使内存中QueryA的结果也相应的改变。
解决方案 »
- hashtable[key]=0;和hashtable.Add(Key, 0);有啥区别?前者不是更省事不会有碰撞异常吗?
- C#新手问Button控件 click下如何获得 该button的 位置尺寸等信息
- C# 用鼠标绘制蚂蚁线--------------------在线等
- 编写地图编辑器碰到拖拽显示问题,求助
- C#中如何定一个二维数组
- 急需C#的朋友帮忙,在线等待。
- 怎样将一个文本文件的Encoding 由 ANSI 改变为 UTF-8 ?
- c# pictureBox控件画地图,win7 64位兼容问题
- 散分:按概率取值问题的算法。
- 关于游戏服务器的讨论,欢迎参与!
- xmlSerializer序列化的问题
- CheckedListBox 怎么设置默认呢
其实实际情况要复杂些,QueryA是基于表A,表B的连接查询,当内存中DataTable A的内容变动之后,QueryA也应该做出相应的改动,但是这个同步的功能似乎并没有内置在Framework中,只能通过手动更改QueryA中的相应项目,就如Knight94(愚翁)所说,现在我的实现也是如此。
但是当有许多Query的时候就很不方便而且容易出错,所以我想问一下有没有内置的解决方案。
为什么不把其中一个做成另外一个的DataView呢。
表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体现出这样的连接查询?谢谢!
DataTable本身就是内存中的数据表,这个没有问题,我的问题是用DataView能不能对两张关联的DataTable进行连接查询,以我现在的理解似乎不可以。
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();
ADO.NET 中的表达式
http://www.microsoft.com/china/MSDN/library/data/dataAccess/ADONETEXP.mspx