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