Ich möchte ein Datagrid anzeigen, das Datensätze basierend auf einer Abfrage von meiner Suchschaltfläche zurückgibt, aber jedes Mal, wenn ich auf die Suchschaltfläche klicke, werden alle Datensätze aus der Datenbank zurückgegeben.Visual C# Datagrid gibt alle Datensätze aus der Datenbank zurück
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;
}
}
Ich möchte Datensätze angezeigt werden, die den Client-Code auf dem Textfeld übereinstimmen, aber es zurückgeben immer alle Datensätze aus der Datenbank.
Wo ist Ihr Code? –
Nur gepostet, tut mir leid, ich bin neu in diesem –
Sie sollten auch einen Parameter für client_code verwenden, um die Verkettung einer Zeichenfolge in die Abfrage (die ein SQL-Injection-Risiko ist) zu vermeiden. Hat ClientCode.Text tatsächlich einen Wert beim Debuggen? – pmcilreavy