これはSQL Serverで入力したときのクエリです。SQLクエリWHERE条件が機能していない
SELECT * FROM CSPJDE.DBO.Emp WHERE Dept = '010'
これはaspx.csファイルに
private void BindGrid()
{
string strConnString = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand("SELECT TOP 100 * FROM [dbo].[F4101] WHERE IMSRP3 ='"+Div+"'"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
}
}
コードである「本部」変数は、ユーザーがドロップダウンリストを選択します別のページから転送されました。各オプションには独自の値があります。 index.aspx.csファイルで
<asp:DropDownList ID="DivDrop" runat="server" CssClass="auto-style1">
<asp:ListItem Value="010" Selected="True">(010) CAL</asp:ListItem>
<asp:ListItem Value="020">(020) Sales</asp:ListItem>
<asp:ListItem Value="'030'">(030) Marketing</asp:ListItem>
<asp:ListItem Value="'031'">(031) Admin</asp:ListItem>
<asp:ListItem Value="'035'">(035) Accounting</asp:ListItem>
<asp:ListItem Value="'999'">ALL</asp:ListItem>
</asp:DropDownList>
、resultpage.aspx.csに転送するための変数を保存するためのコードは次のとおりです。result.aspx.csで
protected void RunButton_Click(object sender, EventArgs e)
{
Response.Redirect("ResultPage.aspx?Value="+DivDrop.SelectedValue);
}
にコード変数を取得する:
public void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["Value"] != null)
{
string Div = Request.QueryString["Value"].ToString();
}
if (!IsPostBack)
{
this.BindGrid();
}
}
したがって、WHERE条件が機能しない理由はわかりません。私のコーディングが間違っているか、私が逃したことがありますか?ご意見をお聞かせください。前もって感謝します。
EDIT
SQLクエリと私のデータベースの結果を比較した後、私は、変数が空であることに気づきました。データベースからデータを引き出すことができる理由は、調整中の列に空のデータがあるためです。
EDIT
ない、これは役立ちますが、私はこの問題の原因である可能性がありますエラーが発生しているかどうかを確認してください。 "名前 'DivDrop'は現在のコンテキストに存在しません"。 DivDropは、自分の価値を引き出すために使用しているドロップダウンリストです。
私はそれをしたとがあるように思われる。このようなことにあなたの方法を変更しますクエリの結果に変更はありません。 – Brandon