!---很菜的问题,刚学ASP.net 请坛里各位好心人 帮帮我 5555 ----!

时间:2022-02-08 08:53:51
是这样的, 我数据库有3个表, P1,P2,P3表  
P1表里字段有 ID, A, B
P2表里字段有 ID, X, Y
P3表里字段有 ID, R, S

在这3个表里都有一个ID字段,3个表里ID字段值都不同,然后用户在一个TextBox控件里输入ID值
能查出结果,比如 用户输入; 100123
然后的出这样的结果

ID:100123     A:100    B:20 

X: 5          Y:6      R:7

S: 8
  
最好不用DataGrid控件,让得出的结果可以随意布置在页面的任何位置

请给我写一个简单详细的代码,我好用

13 个解决方案

#1


救救我啊 555

#2


不明白什么意思

#3


“随意布置在页面的任何位置”什么意思啊

#4


3个表里ID字段值都不同??
----------------------
3個表是通過ID來關連嗎?

#5


你的表设计的有问题,三个必须有关联关系才可以,否则是做不到的,因为某个表记录是多条时就没法确定该取那条。

应该是这样
P1表里字段有 ID, A, B,pid
P2表里字段有 ID, X, Y,pid
P3表里字段有 ID, R, S,pid
其中ID是表自身的主键ID,而pid则是三个表的关联id

然后构造sql语句
string sql="select P1.ID,A, B,X,Y,R, S from P1 
left join P2 on P1.pid=P2.pid
left join P3 on P1.pid=P3.pid
where P1.ID='"+text1.Text+"'";

#6


就是不用DataGrid控件做, 因为那个控件是表形式呈现的

比如DataGrid控件做的是这种结果
ID        A    B    X    Y    R    S
1001      1    2    10   11   33   32


我想要得结果是

ID:1001     A:1    B;2
X:10        Y:11   R:33
S:32

#7


在DataGird中建一模版列,放入表格,格式自定。

#8


大家帮帮我啊

#9


string s1=A;
string s2=B;
string s3=C;


<table>
 <tr><td><%=s1%></td><td></td></tr>
 <tr><td><%=s2%></td><td><%=s3%></td></tr>
</table>

不就可以了么。不就一个格式问题.

#10


即然不关联那就用一个ID值去查三次不同的表来得出结果,然后用label接收,想放哪就放哪.

#11


不是有三个东西可以用的吗?datagrid之外还有两个选择

建立sql语句用singlepine(小山) 的方法可以了

至于做成你那个样式,用Repeater 可以了
建立一个三行三列表格
把表格放在<asp:Repeater id="rptUserName" runat="server"><ItemTemplate>与</ItemTemplate></asp:Repeater>之间
样板代码(复制到vs2003测试):

<asp:Repeater id="rptUserName" runat="server"><ItemTemplate><table><tr><td>ID:<%#DataBinder.Eval(Container.DataItem,"ID")%></td><td>A:<%#DataBinder.Eval(Container.DataItem,"A")%></td><td>B:<%#DataBinder.Eval(Container.DataItem,"QQ")%></td></tr><tr><td></td><td>X:<%#DataBinder.Eval(Container.DataItem,"X")%></td><td>Y:<%#DataBinder.Eval(Container.DataItem,"Y")%></td></tr><tr><td></td><td>R:<%#DataBinder.Eval(Container.DataItem,"QQ")%></td><td>S:<%#DataBinder.Eval(Container.DataItem,"QQ")%></td></tr></table></ItemTemplate></asp:Repeater>

#12


不明白你要做什么?三个表的关系如何?你要取得数据和你输入的ID什么关系?

#13


代码小小混乱,不好意思

#1


救救我啊 555

#2


不明白什么意思

#3


“随意布置在页面的任何位置”什么意思啊

#4


3个表里ID字段值都不同??
----------------------
3個表是通過ID來關連嗎?

#5


你的表设计的有问题,三个必须有关联关系才可以,否则是做不到的,因为某个表记录是多条时就没法确定该取那条。

应该是这样
P1表里字段有 ID, A, B,pid
P2表里字段有 ID, X, Y,pid
P3表里字段有 ID, R, S,pid
其中ID是表自身的主键ID,而pid则是三个表的关联id

然后构造sql语句
string sql="select P1.ID,A, B,X,Y,R, S from P1 
left join P2 on P1.pid=P2.pid
left join P3 on P1.pid=P3.pid
where P1.ID='"+text1.Text+"'";

#6


就是不用DataGrid控件做, 因为那个控件是表形式呈现的

比如DataGrid控件做的是这种结果
ID        A    B    X    Y    R    S
1001      1    2    10   11   33   32


我想要得结果是

ID:1001     A:1    B;2
X:10        Y:11   R:33
S:32

#7


在DataGird中建一模版列,放入表格,格式自定。

#8


大家帮帮我啊

#9


string s1=A;
string s2=B;
string s3=C;


<table>
 <tr><td><%=s1%></td><td></td></tr>
 <tr><td><%=s2%></td><td><%=s3%></td></tr>
</table>

不就可以了么。不就一个格式问题.

#10


即然不关联那就用一个ID值去查三次不同的表来得出结果,然后用label接收,想放哪就放哪.

#11


不是有三个东西可以用的吗?datagrid之外还有两个选择

建立sql语句用singlepine(小山) 的方法可以了

至于做成你那个样式,用Repeater 可以了
建立一个三行三列表格
把表格放在<asp:Repeater id="rptUserName" runat="server"><ItemTemplate>与</ItemTemplate></asp:Repeater>之间
样板代码(复制到vs2003测试):

<asp:Repeater id="rptUserName" runat="server"><ItemTemplate><table><tr><td>ID:<%#DataBinder.Eval(Container.DataItem,"ID")%></td><td>A:<%#DataBinder.Eval(Container.DataItem,"A")%></td><td>B:<%#DataBinder.Eval(Container.DataItem,"QQ")%></td></tr><tr><td></td><td>X:<%#DataBinder.Eval(Container.DataItem,"X")%></td><td>Y:<%#DataBinder.Eval(Container.DataItem,"Y")%></td></tr><tr><td></td><td>R:<%#DataBinder.Eval(Container.DataItem,"QQ")%></td><td>S:<%#DataBinder.Eval(Container.DataItem,"QQ")%></td></tr></table></ItemTemplate></asp:Repeater>

#12


不明白你要做什么?三个表的关系如何?你要取得数据和你输入的ID什么关系?

#13


代码小小混乱,不好意思