要做兩個關聯表的查詢:
表一:SFCYML
字段:ML001(單別)、ML002(單號)、ML005(工單單別)、ML006(工單單號)、ML015(品號)、ML011(投入批號)、ML012(產出批號)、ML016(總長)、ML017(各段長)、ML052(幅寬)、ML007(類別)、ML001(單別);
表二:MOCTA
字段:TA001、TA002、UDF01(客戶)
兩表關系:ML005和TA001關聯;ML006和TA002關聯
要實現用戶通過輸入品号(品號)或產出批號(ML012)或工單單號(ML006)
查詢.
要顯示的信息為:單別、單號、工單單別、工單單號、品號、投入批號、產出批號、總長、各段長、幅寬、類別、單別、客戶.
全部顯示我已實現,請問怎麼實現查詢???
search.aspx:
Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" EnableEventValidation = "false" Inherits="UI_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
<link href="../StyleSheet.css" rel=Stylesheet type="text/css" />
</head>
<body>
<center>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="23px" Width="850px">
<asp:Label ID="Label1" runat="server" Text="查詢條件:" ForeColor="#666666"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server" Font-Names="宋体" Font-Size="9pt">
<asp:ListItem Value="ML015">品號</asp:ListItem>
<asp:ListItem Value="ML011">投入批號</asp:ListItem>
<asp:ListItem Value="ML012">產出批號</asp:ListItem>
<asp:ListItem Value="Ml006">工單單號</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" Font-Names="宋体" Font-Size="9pt">
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" Height="13px" Font-Names="宋体" Font-Size="9pt"></asp:TextBox>
<asp:Button ID="Button5" runat="server" Text="查找" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" /></asp:Panel>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Height="111px" Width="850px" OnRowCreated="GridView1_RowCreated" style="color: gray">
<PagerSettings Mode="NextPreviousFirstLast" Visible="False"/>
<HeaderStyle BackColor="DodgerBlue" Font-Bold=True ForeColor=White />
<Columns>
<asp:BoundField DataField="ML001" HeaderText="單別" SortExpression="ML001" />
<asp:BoundField DataField="ML002" HeaderText="單號" SortExpression="ML002" />
<asp:BoundField DataField="ML005" HeaderText="工單單別" SortExpression="ML005" />
<asp:BoundField DataField="ML006" HeaderText="工單單號" SortExpression="ML006" />
<asp:BoundField DataField="ML015" HeaderText="品號" SortExpression="ML015" />
<asp:BoundField DataField="ML011" HeaderText="投入批號" SortExpression="ML011" />
<asp:BoundField DataField="ML012" HeaderText="產出批號" SortExpression="ML012" />
<asp:BoundField DataField="ML016" HeaderText="總長" SortExpression="ML016" />
<asp:BoundField DataField="ML017" HeaderText="各段長" SortExpression="ML017" />
<asp:BoundField DataField="ML052" HeaderText="幅寬" SortExpression="ML052" />
<asp:BoundField DataField="ML007" HeaderText="類別" SortExpression="ML007" />
<asp:BoundField HeaderText="客戶" DataField="UDF01" SortExpression="UDF01" />
</Columns>
</asp:GridView>
<br />
<asp:Panel ID="Panel2" runat="server" Height="21px" Width="850px">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="首頁" CommandArgument="first" CommandName="page" Font-Names="宋体" Font-Size="9pt" BackColor="#EEEEEE" ForeColor="#666666" />
<asp:Button ID="Button2" runat="server" OnClick="Button1_Click" Text="上一頁" CommandArgument="prev" CommandName="page" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" />
<asp:Button ID="Button3" runat="server" OnClick="Button1_Click" Text="下一頁" CommandArgument="next" CommandName="page" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" />
<asp:Button ID="Button4" runat="server" OnClick="Button1_Click" Text="末頁" CommandArgument="last" CommandName="page" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" /></asp:Panel>
</div>
</form></center>
</body>
</html>search.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class UI_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
private void bind()
{ //建立一个方法,用与在页面中为控件绑定数据
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["YS999ConnectionString"].ConnectionString);
//初始化连接
SqlDataAdapter sda = new SqlDataAdapter("select SFCYML.ML001,SFCYML.ML002,SFCYML.ML005,SFCYML.ML006,SFCYML.ML015,SFCYML.ML011,SFCYML.ML012,SFCYML.ML016,SFCYML.ML017,SFCYML.ML052,SFCYML.ML007,MOCTA.TA001,MOCTA.TA002,MOCTA.UDF01 from SFCYML Inner Join MOCTA on SFCYML.ML005=MOCTA.TA001 and SFCYML.ML006=MOCTA.TA002 ", con);
DataSet ds = new DataSet();
sda.Fill(ds, "SFCYML");
GridView1.DataSource = ds.Tables["SFCYML"]; GridView1.AllowPaging = true;//设置他可以分页,前台必须设置分页模板不可见,否则他要使坏
GridView1.PageSize = 40;//分页大小为10
GridView1.DataBind(); if (GridView1.PageIndex == 0)
{//如果当前为首页,那么上页和首页按纽不可用
Button1.Enabled = false;
Button2.Enabled = false;
}
else
{
Button1.Enabled = true;
Button2.Enabled = true;
}
if (GridView1.PageIndex == GridView1.PageCount - 1)
{//如果当前为末页,那么下页和末页按纽不可用
Button3.Enabled = false;
Button4.Enabled = false;
}
else
{
Button3.Enabled = true;
Button4.Enabled = true;
}
}
protected void Button1_Click(object sender, EventArgs e)
{//实现分页
switch (((Button)sender).CommandArgument.ToString())
{
case "first":
GridView1.PageIndex = 0;
break;
case "last":
GridView1.PageIndex = GridView1.PageCount - 1;
break;
case "prev":
GridView1.PageIndex = GridView1.PageIndex - 1;
break;
case "next":
GridView1.PageIndex = GridView1.PageIndex + 1;
break;
}
bind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{//鼠标行为
if (e.Row.RowType == DataControlRowType.DataRow)//判斷該行是否為數據行,為數據行觸發鼠標動作
{
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#eeeeee'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c;");
} }
}
表一:SFCYML
字段:ML001(單別)、ML002(單號)、ML005(工單單別)、ML006(工單單號)、ML015(品號)、ML011(投入批號)、ML012(產出批號)、ML016(總長)、ML017(各段長)、ML052(幅寬)、ML007(類別)、ML001(單別);
表二:MOCTA
字段:TA001、TA002、UDF01(客戶)
兩表關系:ML005和TA001關聯;ML006和TA002關聯
要實現用戶通過輸入品号(品號)或產出批號(ML012)或工單單號(ML006)
查詢.
要顯示的信息為:單別、單號、工單單別、工單單號、品號、投入批號、產出批號、總長、各段長、幅寬、類別、單別、客戶.
全部顯示我已實現,請問怎麼實現查詢???
search.aspx:
Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" EnableEventValidation = "false" Inherits="UI_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
<link href="../StyleSheet.css" rel=Stylesheet type="text/css" />
</head>
<body>
<center>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="23px" Width="850px">
<asp:Label ID="Label1" runat="server" Text="查詢條件:" ForeColor="#666666"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server" Font-Names="宋体" Font-Size="9pt">
<asp:ListItem Value="ML015">品號</asp:ListItem>
<asp:ListItem Value="ML011">投入批號</asp:ListItem>
<asp:ListItem Value="ML012">產出批號</asp:ListItem>
<asp:ListItem Value="Ml006">工單單號</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" Font-Names="宋体" Font-Size="9pt">
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" Height="13px" Font-Names="宋体" Font-Size="9pt"></asp:TextBox>
<asp:Button ID="Button5" runat="server" Text="查找" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" /></asp:Panel>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Height="111px" Width="850px" OnRowCreated="GridView1_RowCreated" style="color: gray">
<PagerSettings Mode="NextPreviousFirstLast" Visible="False"/>
<HeaderStyle BackColor="DodgerBlue" Font-Bold=True ForeColor=White />
<Columns>
<asp:BoundField DataField="ML001" HeaderText="單別" SortExpression="ML001" />
<asp:BoundField DataField="ML002" HeaderText="單號" SortExpression="ML002" />
<asp:BoundField DataField="ML005" HeaderText="工單單別" SortExpression="ML005" />
<asp:BoundField DataField="ML006" HeaderText="工單單號" SortExpression="ML006" />
<asp:BoundField DataField="ML015" HeaderText="品號" SortExpression="ML015" />
<asp:BoundField DataField="ML011" HeaderText="投入批號" SortExpression="ML011" />
<asp:BoundField DataField="ML012" HeaderText="產出批號" SortExpression="ML012" />
<asp:BoundField DataField="ML016" HeaderText="總長" SortExpression="ML016" />
<asp:BoundField DataField="ML017" HeaderText="各段長" SortExpression="ML017" />
<asp:BoundField DataField="ML052" HeaderText="幅寬" SortExpression="ML052" />
<asp:BoundField DataField="ML007" HeaderText="類別" SortExpression="ML007" />
<asp:BoundField HeaderText="客戶" DataField="UDF01" SortExpression="UDF01" />
</Columns>
</asp:GridView>
<br />
<asp:Panel ID="Panel2" runat="server" Height="21px" Width="850px">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="首頁" CommandArgument="first" CommandName="page" Font-Names="宋体" Font-Size="9pt" BackColor="#EEEEEE" ForeColor="#666666" />
<asp:Button ID="Button2" runat="server" OnClick="Button1_Click" Text="上一頁" CommandArgument="prev" CommandName="page" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" />
<asp:Button ID="Button3" runat="server" OnClick="Button1_Click" Text="下一頁" CommandArgument="next" CommandName="page" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" />
<asp:Button ID="Button4" runat="server" OnClick="Button1_Click" Text="末頁" CommandArgument="last" CommandName="page" BackColor="#EEEEEE" Font-Names="宋体" Font-Size="9pt" ForeColor="#666666" /></asp:Panel>
</div>
</form></center>
</body>
</html>search.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class UI_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
private void bind()
{ //建立一个方法,用与在页面中为控件绑定数据
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["YS999ConnectionString"].ConnectionString);
//初始化连接
SqlDataAdapter sda = new SqlDataAdapter("select SFCYML.ML001,SFCYML.ML002,SFCYML.ML005,SFCYML.ML006,SFCYML.ML015,SFCYML.ML011,SFCYML.ML012,SFCYML.ML016,SFCYML.ML017,SFCYML.ML052,SFCYML.ML007,MOCTA.TA001,MOCTA.TA002,MOCTA.UDF01 from SFCYML Inner Join MOCTA on SFCYML.ML005=MOCTA.TA001 and SFCYML.ML006=MOCTA.TA002 ", con);
DataSet ds = new DataSet();
sda.Fill(ds, "SFCYML");
GridView1.DataSource = ds.Tables["SFCYML"]; GridView1.AllowPaging = true;//设置他可以分页,前台必须设置分页模板不可见,否则他要使坏
GridView1.PageSize = 40;//分页大小为10
GridView1.DataBind(); if (GridView1.PageIndex == 0)
{//如果当前为首页,那么上页和首页按纽不可用
Button1.Enabled = false;
Button2.Enabled = false;
}
else
{
Button1.Enabled = true;
Button2.Enabled = true;
}
if (GridView1.PageIndex == GridView1.PageCount - 1)
{//如果当前为末页,那么下页和末页按纽不可用
Button3.Enabled = false;
Button4.Enabled = false;
}
else
{
Button3.Enabled = true;
Button4.Enabled = true;
}
}
protected void Button1_Click(object sender, EventArgs e)
{//实现分页
switch (((Button)sender).CommandArgument.ToString())
{
case "first":
GridView1.PageIndex = 0;
break;
case "last":
GridView1.PageIndex = GridView1.PageCount - 1;
break;
case "prev":
GridView1.PageIndex = GridView1.PageIndex - 1;
break;
case "next":
GridView1.PageIndex = GridView1.PageIndex + 1;
break;
}
bind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{//鼠标行为
if (e.Row.RowType == DataControlRowType.DataRow)//判斷該行是否為數據行,為數據行觸發鼠標動作
{
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#eeeeee'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c;");
} }
}
例如按工單單號(ML006),
if(this.dropdownlist.value==工單單號)
{
string sql="select a.* ,b.客户 from SFCYML a join MOCTA b on a.--=b.--
where a.工單單號=@danhao";
SqlCommand cmd=new SqlCommand (sql,conn);
cmd.Parameters.Add("@danhao",this.TextBox1.text);
.......
}
{
frmQuery frm = new frmQuery(bindMaster, this.dataGridView.Columns[this.dataGridView.CurrentCell.ColumnIndex].Name.ToString());
frm.ShowDialog();
}
====================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WiseChamp
{
public partial class frmQuery : Form
{
private BindingSource _bindQuery;
private string _qrystring;
public frmQuery(BindingSource bd,string qryString)
{
InitializeComponent();
this._bindQuery = bd;
this._qrystring = qryString;
}
private void btnQuery_Click(object sender, EventArgs e)
{
int foundIndex = _bindQuery.Find(_qrystring, this.txtSearch.Text.Trim().ToString());
if (foundIndex <= -1)
{
MessageBox.Show("没有找到您查询的数据!","系统提示");
}
else
{
_bindQuery.Position = foundIndex;
this.txtSearch.SelectionStart = 0;
this.txtSearch.SelectAll();
}
} private void frmQuery_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar==(char)Keys.Escape)
{
this.Close();
}
}
}
}