私は検索テキストボックスIと、次にレコードを検索するために使用するボタンがあります。日付を検索できません(月ワード)
IDとステータスで検索できます。でも、テキストボックスを使って日付を検索したいのですが。
それは可能でしょうか?
ASPNET
<div class="pull-right col-lg-11">
<center>
<asp:TextBox ID="txtSearch" runat="server" class="form-control" bordercolor="Black"></asp:TextBox>
</center>
</div>
<br />
<div>
<span class="input-group-btn">
<asp:LinkButton ID="btnSearch" runat="server" class="btn btn"
BackColor="CornflowerBlue" Style="color: White"
OnClick="btnSearch_Click">
<i class="fa fa-search"></i>
</asp:LinkButton>
</span>
</div>
ここでは、私は後ろの私のコードで試してみましたものです。
C#のコード:BUTTON FOR は単に "4月" のためではない検索は、事前に君たちに感謝することができ、この私を使用することにより
protected void btnSearch_Click(object sender, EventArgs e)
{
if (txtSearch.Text.Trim() == "")
{
GetPR();
}
else
{
GetPRSearch(txtSearch.Text);
}
}
MY GET
void GetPR()
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT Receiving.ReceivingID, Receiving.POID, Receiving.FinalDeliveryDate, " +
"Receiving.Status, Receiving.DateReceived, Receiving.ReceivedByID, Users.FirstName, Users.LastName, PO.CompanyName FROM Receiving " +
"INNER JOIN Users ON Receiving.ReceivedByID=Users.UserID INNER JOIN PO ON Receiving.POID=PO.POID ORDER BY Receiving.DateReceived DESC";
cmd.Parameters.AddWithValue("@UserID", Session["userid"].ToString());
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Receiving");
lvPurchases.DataSource = ds;
lvPurchases.DataBind();
con.Close();
}
void GetPRSearch(string keyword)
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT Receiving.ReceivingID, Receiving.POID, Receiving.FinalDeliveryDate, " +
"Receiving.Status, Receiving.DateReceived, Receiving.ReceivedByID, Users.FirstName, Users.LastName, PO.CompanyName FROM Receiving " +
"INNER JOIN Users ON Receiving.ReceivedByID=Users.UserID INNER JOIN PO ON Receiving.POID=PO.POID " +
"WHERE Receiving.ReceivingID LIKE '%" + keyword + "%' OR PO.CompanyName LIKE '%" + keyword + "%' OR Receiving.POID LIKE '%" + keyword + "%' " +
"OR Receiving.DateReceived LIKE '%" + keyword + "%'";
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Receiving");
lvPurchases.DataSource = ds;
lvPurchases.DataBind();
con.Close();
}
をクリック!アドバイスは非常に高く評価されています。
JSONの答えは移動するための方法ですが、それは 'GetPRSearch'内のSQLインジェクション攻撃への広い開いているという点で、あなたはここにあなたのコード内の問題を持っています。入力をパラメータ化する必要があります。さらにクエリをストアドプロシージャに移動すると、将来の変更やメンテナンスがずっと簡単になるという利点があります。 –
あなたは私たちにあなたが使用しているデータベースエンジンを与えるためにとても親切でしょうか?私は、エンジンの組み込み関数を使って検索する簡単な方法はどこにあるのでしょうか。 – thepanch
私はSQL SERVER @thepanch –