0

1つのボタンで複数の選択コマンドを実行しようとしています。例:単一の表示ボタンでの日付ごとの検索、名前ごとの検索、製品ごとの検索。ただし、この検索は、名前ごとの検索だけを実行することも、名前と製品ごとの検索を実行することもできるように、ランダムにすることもできます。ただし、これは1つの表示ボタンでのみ実行する必要があります。Plzはサンプルコードで私を助けてくれます。

4

3 に答える 3

0

これでうまくいくといいのですが、好きなオプションを設定できます。

    public class Parameters
    {

        //Properties.
        public string CompanyName
        {
            get;set;
        }

        public string ProductName
        {
            get;set;
        }

        public string Design
        {
            get;set;
        }

        public string Size
        {
            get;set;
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Parameters para = new Parameters();
        if (cbxCompanyName.Text.Trim().Length != 0)
        {
            para.CompanyName = "'" + this.cbxCompanyName.Text + "'";

        }
        if (cbxProductName.Text.Trim().Length != 0)
        {
            para.ProductName = "'" + this.cbxProductName.Text + "'";

        }
        if (cbxDesign.Text.Trim().Length != 0)
        {
            para.Design = "'" + this.cbxDesign.Text + "'";

        }
    }

    public void test(Parameters paras)
    {
        try
        {
            con = new SqlConnection(source);
            con.Open();

            string select;


            select = "SPGetSaleRegCulture ";

            DataSet ds = new DataSet();

            cmd = new SqlCommand(select, con);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Company", paras.CompanyName);
            cmd.Parameters.AddWithValue("@Product", paras.ProductName);
            cmd.Parameters.AddWithValue("@Design", paras.Design);
            cmd.Parameters.AddWithValue("@Size", paras.Size);

            da.SelectCommand = cmd;

            da.Fill(ds, "SaleRegister");


        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
于 2012-12-13T05:42:41.340 に答える
0

これはコーディングの疑いではなく、論理の疑いである可能性が高いです。このため、ここには多くのオプションがあり、いくつかの SQL クエリ連結またはいくつかのIf..else...elseIfステートメントを実行できます。次のようなものです。

protected void btnSave_Click(object sender, EventArgs e)
{

                    if (ddpcustomer.SelectedIndex == 0 && ddpproperty.SelectedIndex == 0)
                    {
                        DataSet ds1 = Tbl_MasterBooking.getDetailsforBookingSummaryWithoutStatusCheckinDate(inputField.Text, inputField1.Text, userId, Cid);
                        GVBookingSummary.DataSource = ds1;
                        GVBookingSummary.DataBind();
                        GridView1.DataSource = ds1;
                        GridView1.DataBind();
                    }
                    else if (ddpcustomer.SelectedIndex != 0 && ddpproperty.SelectedIndex == 0)
                    {
                        DataSet ds1 = Tbl_MasterBooking.getDetailsforBookingSummaryWithoutStatusWithCustNameCheckinDate(inputField.Text, inputField1.Text, userId, Cid,ddpcustomer.SelectedItem.Text);
                        GVBookingSummary.DataSource = ds1;
                        GVBookingSummary.DataBind();
                        GridView1.DataSource = ds1;
                        GridView1.DataBind();
                    }
                    else if (ddpcustomer.SelectedIndex != 0 )
                    {
                        DataSet ds1 = Tbl_MasterBooking.getDetailsforBookingSummaryWithoutStatusWithPnameCheckinDate(inputField.Text, inputField1.Text, userId, Cid, ddpproperty.SelectedItem.Text);
                        GVBookingSummary.DataSource = ds1;
                        GVBookingSummary.DataBind();
                        GridView1.DataSource = ds1;
                        GridView1.DataBind();
                    }
                    else if (ddpcustomer.SelectedIndex != 0 && ddpproperty.SelectedIndex != 0)
                    {
                        DataSet ds1 = Tbl_MasterBooking.getDetailsforBookingSummaryWithoutStatusWithPnameandCustNameCheckinDate(inputField.Text, inputField1.Text, userId, Cid, ddpproperty.SelectedItem.Text, ddpcustomer.SelectedItem.Text);
                        GVBookingSummary.DataSource = ds1;
                        GVBookingSummary.DataBind();
                        GridView1.DataSource = ds1;
                        GridView1.DataBind();
                    }
 }
于 2012-12-13T04:58:26.917 に答える
0

1 つのフィルターに基づいて検索を実行する場合は、DropDownList を使用して、選択した値に基づいて検索するか、または ... 複数のデータ コレクションを検索することに疑問がある場合は、以下のコード スニペットを提供します。

    private class Product 
    {
        public string Name;
        public double Price;
        public string ToString()
        {
            return Name + " : " + Price.ToString() + "$";
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
        List<string> names = new List<string>();
        names.Add("Jack");
        names.Add("John");
        names.Add("Nick");
        names.Add("Rock");

        List<Product> products = new List<Product>();
        products.Add(new Product { Name = "Laptop", Price = 1000 });
        products.Add(new Product { Name = "Tablet", Price = 750 });
        products.Add(new Product { Name = "Rock", Price = 1 });

        List<DateTime> dates = new List<DateTime>();
        dates.Add(DateTime.Now.AddDays(-1));
        dates.Add(DateTime.Now);
        dates.Add(DateTime.Now.AddDays(1));

        lblOutput.Text = "";

        foreach (string name in names)
        {
            if (name == txtSearch.Text)
                lblOutput.Text += name + "[Name] ";
        }
        foreach (Product product in products)
        {
            if (product.Name == txtSearch.Text)
                lblOutput.Text += product.ToString();
        }
        foreach (DateTime date in dates)
        {
            DateTime dt;
            if (DateTime.TryParse(txtSearch.Text, out dt))
                if (date == dt)
                    lblOutput.Text = date.Date.ToShortDateString();
        }
    }

また、一致が見つかったらすぐに検索を停止したい場合は、一致が見つかったreturn各コード ブロックの後に 次のように配置できます。

if (name == txtSearch.Text)
    { lblOutput.Text += name + "[Name] "; return;}

お役に立てば幸いです。

于 2012-12-13T05:13:33.860 に答える