検索ボタンからのクエリに基づいてレコードを返すデータグリッドを表示したいが、検索ボタンをクリックするとデータベースからすべてのレコードが返される。データベースからすべてのレコードを返すVisual C#Datagrid
HTML
<html>
<asp:TextBox ID="ClientCode" runat="server"></asp:TextBox>
<asp:GridView ID="ClientDataGrid" runat="server" Height="111px"
Width="202px" Visible="False"></asp:GridView>
C#
private void rep_bind()
{
connection();
string query = ""select * from client where client_code ='" +
ClientCode.Text + "'";
SqlDataAdapter da = new SqlDataAdapter(query, con);
DataSet ds = new DataSet();
da.Fill(ds);
ClientDataGrid.DataSource = ds;
ClientDataGrid.DataBind();
}
private void InitializeComponent()
{
}
protected void search_Click(object sender, EventArgs e)
{
Label1.Text = "";
connection();
string query = string.Format("select * from client where client_code
='" + ClientCode.Text + "'") ; ;
SqlCommand com = new SqlCommand(query, con);
com.Parameters.Add("@category", SqlDbType.NVarChar, 20).Value =
category.SelectedItem.Text;
SqlDataReader dr;
dr = com.ExecuteReader();
ListItem selectedItem = category.SelectedItem;
if (string.IsNullOrWhiteSpace(ClientCode.Text) &&
string.IsNullOrWhiteSpace(ClientName.Text))
{
ClientDataGrid.Visible = false;
Label1.Visible = true;
Label1.Text = "Please Enter Correct Search Values";
}
else if (dr.HasRows)
{
dr.Read();
rep_bind();
ClientDataGrid.Visible = true;
}
else
{
ClientDataGrid.Visible = false;
}
}
私は、テキストボックスにクライアントコードと一致しますレコードを表示したいが、それは常に、データベースからすべてのレコードを返します。
コードはどこですか? –
はちょうど私があなたが(SQLインジェクションのリスクである)、クエリに文字列を連結避けるためにもclient_codeのパラメータを使用する必要があります。この –
に新しいごめんなさい、それを掲載しました。 ClientCode.Textにはデバッグ時に実際に値がありますか? – pmcilreavy