ここは私の状況です。ページング、グループ化、フィルタリングを実行したい私はpage_initメソッドを使用しているので。私のコードに従って、うまくいきます。しかし、ユーザーはwhere節条件だけを与えることができますasp.netのPage_initメソッドでテキストボックスの値を取得する方法は?
たとえば、私のページにはテキストボックスがあります。そのテキストボックスのユーザーでそのテキストボックスID="txtQuery"
は、だから、私は、これは、レコードが表示されますよう
cmd.commandText="select * from TABLE_NAME where "+txtQuery.text
の下に私のコードを作成する必要がありitemID='45366'
のようなwhere句を入力します。これは今問題です。上記のようにcmd.commandText
を作成すると、エラーがスローされます。
System.Data.SqlClient.SqlException: 'where'の近くに構文が正しくありません。
私が直接お伝えした場合、間違いなく正常に動作しています。
これは、あなたがtxtQuery.Textが空である、にあなたのgetWhereQueryを変更(最初のページのロード時に)デフォルトでは私のコード
string whereQuery = "";
protected void Page_Init(object sender, EventArgs e)
{
// initialize SomeDataTable
if (IsPostBack)
{
string cs = ConfigurationManager.ConnectionStrings["HQMatajerConnectionString"].ConnectionString;
whereQuery = getWhereQuery();
//Response.Write("<br/><br/><br/><br/>" + whereQuery);
using (SqlConnection con = new SqlConnection(cs))
{
string query = @"select transactions.storeid as StoreID, YEAR(transactions.Time) Year, MONTH(transactions.Time) Month,
transactionsEntry.TransactionNumber,transactionsEntry.Quantity,
items.ItemLookupCode,items.DepartmentID,items.CategoryID,items.SubDescription1,
suppliers.SupplierName,suppliers.Code
FROM [HQMatajer].[dbo].[Transaction] as transactions
RIGHT JOIN [HQMatajer].[dbo].[TransactionEntry] as transactionsEntry
ON transactions.TransactionNumber=transactionsEntry.TransactionNumber
INNER JOIN [HQMatajer].[dbo].[Item] as items
ON transactionsEntry.ItemID=items.ID
INNER JOIN [HQMatajer].[dbo].[Supplier] as suppliers
ON items.SupplierID=suppliers.ID
where "+whereQuery; //I tried with txtQuery.text as well it doesn't work
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = query;
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(ds);
//SqlDataReader rd = cmd.ExecuteReader();
//ASPxGridView1.Columns.Clear();
ASPxGridView1.AutoGenerateColumns = true;
ASPxGridView1.DataSource = ds;
ASPxGridView1.DataBind();
}
}
}
protected string getWhereQuery()
{
string query = txtQuery.Text;
return query;
}
今? –
しかし、上記のコードは既にそれを行っています。なぜなら、あなたはPage_Loadに含まれていないものをすべて呼び出すのがなぜ正しいのでしょう。 –
あなたは正しいです。今、私は分かる。次に、page_initメソッドの使用は何ですか? plzを説明できます –