none
選擇listbox內的項目後,但是要對應的是該名稱的編號而不是名稱,要怎麼做轉型呢?? RRS feed

  • 問題

  • private void listBox1_Click(object sender, EventArgs e)
            {
                string strName = storeview.SelectedItem.ToString(); //這個是選擇listbox上的項目

                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = "Data Source=KOBEWANG-PC;Initial Catalog=DinBanDonDataBase;Integrated Security=True";
                conn.Open();

                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "SELECT * FROM product WHERE id_num=@storenum"; //可是這邊我想要他對應的是資料庫的id_num的欄位,型別是int,我試過parse但是不行~~

                cmd.Parameters.Add(new SqlParameter("storenum", strName));
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    productview.Text = reader["product"].ToString();
                    productview.Text += reader["price"].ToString();
                    //txtName.Text = reader["fName"].ToString();
                    //txtPhone.Text = reader["fPhone"].ToString();
                    //txtEmail.Text = reader["fEmail"].ToString();
                    //txtAddress.Text = reader["fAddress"].ToString();
                }
                else
                    MessageBox.Show("系統發生錯誤");
            }

    再麻煩版上的各位高手大大了~~謝謝。

    這麼說好了~~

    private void listBox1_Click(object sender, EventArgs e)
            {
                string strName = storeview.SelectedItem.ToString();
                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = "Data Source=KOBEWANG-PC;Initial Catalog=DinBanDonDataBase;Integrated Security=True";
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "SELECT * FROM product WHERE id_num=@storenum";
                cmd.Parameters.Add(new SqlParameter("storenum", strName));
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    productview.Text = reader["product"].ToString();
                    productview.Text += reader["price"].ToString();
                    //txtName.Text = reader["fName"].ToString();
                    //txtPhone.Text = reader["fPhone"].ToString();
                    //txtEmail.Text = reader["fEmail"].ToString();
                    //txtAddress.Text = reader["fAddress"].ToString();
                }
                else
                    MessageBox.Show("系統發生錯誤");
            }
    如果我選擇了listbox的項目後,可以對應到它的編號,而不是實際顯示的名稱嗎??
    就是我選擇了第一個項目"製程廠",但是是依照他的廠區編號來帶出該廠區的員工基本資料
    我的資料庫 廠區資料表 欄位 01(廠區編號) 製程廠
         基本資料表 欄位 01(廠區編號) 員工姓名 員工年資


    2014年12月10日 上午 11:29

所有回覆

  • cmd.Parameters.Add(new SqlParameter("@storenum", strName));

    強力監督SQL Injection問題!!

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

    2014年12月10日 上午 11:58
    版主
  • cmd.Parameters.Add(new SqlParameter("storenum", strName));

    可以寫成

    cmd.Parameters.Add(new SqlParameter("storenum", SqlDbType.Int, int.Parse(strName)));

    如果Parse失敗, 請檢查strName變數的內容值是否正確

    2014年12月10日 下午 12:06
  • 你 的 storeView 裡每個 item 的內容是甚麼?
    如果你只有餵名稱給他 ,  你是取不出編號的



    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年12月11日 上午 01:50