私は奇妙な問題があります。 C#/ ASP.NETでの私のクエリは、結果を5回返します。ブレーキポイントを試しましたが、エラーが見つかりません。関連する2つのテーブルがあります。 1つのテーブルがPAGE_LOADにロードされ、ユーザーがセルをクリックすると、そのセルに関連する別のテーブルの内容が表示されます。それはとても簡単です。クエリは結果を5回返します
//PAGE LOAD
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbpath + "/secure_user/data/data.mdb");
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Project,Manager,Customer,Deadline FROM projects WHERE Username='" + uname + "'", myConnection);
DataTable table = new DataTable();
adapter.Fill(table);
adapter.Dispose();
GridView1.DataSource = table;
GridView1.DataBind();
}
}
GridViewにプロジェクトテーブルを読み込みます。私は特定のプロジェクトをクリックしたときに今、それは、そのプロジェクトの詳細が表示されます。
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow row = GridView1.SelectedRow; Label1.Text = row.Cells[1].Text;
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbpath + "/secure_user/data/data.mdb");
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT tasks.Task,tasks.Priority,tasks.Done,taska.Hours FROM projects,tasks WHERE tasks.Username='" + uname + "' AND tasks.Project='" + Label1.Text + "'", myConnection);
DataTable table = new DataTable();
adapter.Fill(table);
adapter.Dispose();
GridView2.DataSource = table;
GridView2.DataBind();
GridView2.Visible = true;
}
、それはエラーなしで表示されるが、それは私がGridView1から選択するものをプロジェクト5回どんなにを行いますGridView2(第2テーブル)のコンテンツを常に5回連続して表示します。何が問題なの?
2番目のSELECT文(taska)にタイプミスがあるようです。ところで、 – Svante
この種類のクエリはスクリプト攻撃の簡単なターゲットです。検証なしでページの編集可能なフィールドのコンテンツを使用しないようにしてください。 –
誰かが小さなボビーテーブルについて読む必要があります... –