none
有關ASP.NET C# 和MSSQL的問題 RRS feed

  • 一般討論

  • 大家好,小弟是一個NEWBIE學ASP.NET的

    目前有點小問題是有關ASP.NET C# 和MSSQL的問題

    protected void Page_Load(object sender, EventArgs e)
            {if (!IsPostBack)
                {
                    using (SqlConnection conn = new SqlConnection(@"Data Source=server;Initial Catalog=DB;User ID=user;Password=password"))
                    {

                        SqlDataAdapter adpt = new SqlDataAdapter("SELECT '請選擇' AS field , '000' AS field UNION SELECT field , DEPT_NO FROM table ORDER BY field ASC", conn);
                        DataTable dt = new DataTable();
                        adpt.Fill(dt);
                        DropDownList1.DataSource = dt;
                        DropDownList1.DataTextField = "field";
                        DropDownList1.DataBind();
                        conn.Close();
                    }
                }

    目前這一段是可以讀取到我在DB的資料放入DROPDOWNLIST中

    問題是這一段

    protected void dropdownlist1_SelectedIndexChanged(object sender, EventArgs e)
            {

                

                    string value = DropDownList1.SelectedValue;
                    //GridView1.AutoGenerateColumns = true;
                    //GridView1.DataSource = dropdownlist1.SelectedValue;

                    SqlConnection conn = new SqlConnection(@"Data Source=server;Initial Catalog=DB;User ID=user;Password=password");
                    conn.Open();
                
                    SqlDataAdapter sda = new SqlDataAdapter(string.Format(@"SELECT {0} AS DEPT_NO  FROM dept", value), conn);
                    DataTable dt = new DataTable();
                    sda.Fill(dt);

                    GridView1.AutoGenerateColumns = true;
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                    conn.Close();

    }

    這一段中我無法把我在DROPDOWNLIST中選中的值拿出來 與DB中其相同數值的 資料在GRIDVIEW中顯示

    請問一下各位高手們 我該如何是好?

    謝謝

    • 已變更類型 FlyingBread 2016年8月1日 上午 02:03 Customer Discontinued
    2016年7月14日 上午 07:17

所有回覆

  • 1. SQL 篩選資料是用 WHERE [欄位名稱] = [值] 的方式,你現在的作法是把值當欄位...

    2. 你的寫法有 SQL Injection 問題。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2016年7月14日 上午 07:31
    版主
  • 謝謝前輩指教 

    請問SQL Injection問題可以如何解決?


    2016年7月14日 上午 07:34
  • http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/05/07/are-your-website-naked.aspx

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2016年7月14日 上午 07:42
    版主
  • 謝謝前輩指點 

    小弟受教了

    2016年7月14日 上午 07:48
  • 前輩你好

    我把"SELECT feild1 FROM table WHERE feild1= " + @value, conn改了

    但問題是 GRIDVIEW還是顯示不出來 到底是什麼原因呢?

    謝謝

    以下是整段

    if (DropDownList1.SelectedIndex > 0)
                { 
                string value = DropDownList1.SelectedValue;
                SqlConnection conn = new SqlConnection(@"Data Source=server;Initial Catalog=DB;User ID=user;Password=password");
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter("SELECT feild1 FROM table WHERE feild1= " + @value, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);



                GridView1.AutoGenerateColumns = true;
                GridView1.DataSource = dt;
                GridView1.DataBind();
                conn.Close();
            }
                
    2016年7月14日 上午 08:07