要做兩個關聯表的查詢:
表一: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>
        &nbsp; &nbsp;
        &nbsp;
        &nbsp;&nbsp;
    </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;");
        }    }
}

解决方案 »

  1.   

    加个where 不就可以了吗?你设置的条件是单独的
    例如按工單單號(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);
    .......
    }
      

  2.   

    实现任意栏位的查找: private void Seek()
            {
                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();
                }
            }      
        }
    }