Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Thay đổi hiển thị từ Listview lên picturebox

  1. #1
    Ngày gia nhập
    10 2010
    Nơi ở
    HCM
    Bài viết
    171

    Smile Thay đổi hiển thị từ Listview lên picturebox

    Trong CSDL của mình có lưu file hình ảnh. Sau khi mình đã load lên listview thì được và đã hiển thị nó bằng picturebox. Nhưng khi click dòng thứ 2 cùa lv thì hình trong picturebox không thay đổi. Mình đã test bằng 1 buttonNext với code tương tự thì hình thay đổi vậy mình sai ở điểm nào mong anh em khắc phục.



    //Code tron buttonNext
    Visual C# Code:
    1. if (r.Read())
    2.             {
    3.                 //txtbook.Text = r[0].ToString();
    4.                 //txtauthor.Text = r[1].ToString();
    5.                 byte[] b = (byte[])r["HinhAnh"];
    6.                 MemoryStream st = new MemoryStream();
    7.                 st.Write(b, 0, b.Length);
    8.                 Image i = Image.FromStream(st);
    9.                 ptbImage.Image = i;
    10.             }

    //Code trong sự kiện change của listview
    Visual C# Code:
    1.  
    2.             //Tạo kết nối CSDL
    3.             SqlConnection connection = new SqlConnection();
    4.             //Đường dẫn kết nối
    5.             connection.ConnectionString = @"Data Source=HUGO-PC\SQLEXPRESS;
    6.            Initial Catalog=ITStore;Integrated Security=True";
    7.             //Mở kết nối đến CSDL
    8.             connection.Open();
    9.             //Tạo câu truy vấn
    10.             SqlCommand command = connection.CreateCommand();
    11.             command.CommandText = "SELECT * FROM Employee";
    12.             r = command.ExecuteReader();
    13.             if (r.Read())
    14.             {
    15.                 byte[] b = (byte[])r["HinhAnh"];
    16.                 MemoryStream st = new MemoryStream();
    17.                 st.Write(b, 0, b.Length);
    18.                 Image i = Image.FromStream(st);
    19.                 ptbImage.Image = i;
    20.             }
    Đã được chỉnh sửa lần cuối bởi hugovsmoon : 22-02-2011 lúc 08:58 AM. Lý do: Up hình

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    113

    Code trong sự kiện change của listview sao lại có kết nối và select????
    Mỗi lần click vào row khác nhau lại connect và load dữ liệu????
    Còn đây điếu thuốc cháy dở dang .
    Châm lên ta đốt mảnh đời tàn .
    Làn khói ngẩn ngơ theo dòng nhạc .
    Thuốc tàn mà... code ... mãi chưa xong .
    http://thanlong.govtc.com

  3. #3
    Ngày gia nhập
    10 2010
    Nơi ở
    HCM
    Bài viết
    171

    Trích dẫn Nguyên bản được gửi bởi qanlh_soft Xem bài viết
    Code trong sự kiện change của listview sao lại có kết nối và select????
    Mỗi lần click vào row khác nhau lại connect và load dữ liệu????
    Không cần cũng được à ?! khắc phục giúp mình nhé.
    Ngay cả khi mình bỏ kết nối đến CSDL thì nó chỉ vẫn hiện 1 hình trong dữ liệu

  4. #4
    Ngày gia nhập
    12 2007
    Bài viết
    147

    Hình như mỗi lần click hình của mẫu tin cuối cùng luôn được load, mình góp ý thế này hình được lưu trong thư mục còn trong CSDL lưu đường dẫn, mỗi mẫu tin lưu đường dẫn của hình trong tag khi chọn load hình theo đường dẫn trong tag.
    ҬӇĄŊӇ

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    83

    Mặc định Thay thành sự kiện Click của ListView

    Bạn thử đổi thành sự kiện Click thử coi!
    Võ Anh Hoàng Lâm
    YM: vahl2802
    EM: vahl2802@yahoo.com.vn - vltd1987@gmail.com
    Phone: 0985 787 xxx

  6. #6
    Ngày gia nhập
    03 2012
    Bài viết
    9

    Mặc định Thay đổi hiển thị từ Listview lên picturebox

    Trích dẫn Nguyên bản được gửi bởi baothanh07 Xem bài viết
    Hình như mỗi lần click hình của mẫu tin cuối cùng luôn được load, mình góp ý thế này hình được lưu trong thư mục còn trong CSDL lưu đường dẫn, mỗi mẫu tin lưu đường dẫn của hình trong tag khi chọn load hình theo đường dẫn trong tag.
    Bác có thể nói rõ hơn được không ạ? Vì em cũng đang thắc mắc vấn đề này.
    Em cũng có 1 listview chứa cột hình ảnh và hiển thị đường dẫn trong đó nhưng khi chọn vào các dòng trên listview thì đường dẫn ở cột hình ảnh sẽ load lên picturebox và hình ảnh sẽ thay đổi tương ứng với dòng mà em đã chọn trên listview. Mong bác giúp đỡ em cũng như bác chủ thread. Thank bác nhiều ạ

  7. #7
    Ngày gia nhập
    11 2010
    Bài viết
    33

    cho tớ cái source đi bạn! nhìn zô học hỏi

  8. #8
    Ngày gia nhập
    04 2010
    Nơi ở
    tự del nick .!
    Bài viết
    21

    Giải quyết đơn giản thôi bạn : r.read() là biến của SqlDataReader nó chỉ dùng 1 lần duy nhất. tức là bạn đã đọc qua dòng nào thì dòng đó không đọc lại được . như bạn baothanh07 đã nói đó.
    dữ liệu sau khi bạn load lên rồi duyệt hết thì biến r kia chỉ lưu địa chỉ của dòng cuối cùng trong DataBase thôi

    để lấy được hình bạn chỉ cần thay câu command thành
    Code:
    command.CommandText = "SELECT * FROM Employee where MaNhanVien=" + listviw1.SelectedItems[0].Text;

    (chỉ đọc mình cái images thôi , còn bạn đọc cả bảng là sai, và tốn thời gian )

    không biết bạn hiểu ý mình ko nữa ??
    Đã được chỉnh sửa lần cuối bởi lethimet : 03-07-2012 lúc 08:17 AM.
    +================================================= ========== +
    + Đừng e dè đối mặt thử thách. Chỉ khi thử sức mình, bạn mới học được can đảm. +
    +================================================= ========== +

  9. #9
    Ngày gia nhập
    03 2012
    Bài viết
    9

    Trích dẫn Nguyên bản được gửi bởi lethimet Xem bài viết
    Giải quyết đơn giản thôi bạn : r.read() là biến của SqlDataReader nó chỉ dùng 1 lần duy nhất. tức là bạn đã đọc qua dòng nào thì dòng đó không đọc lại được . như bạn baothanh07 đã nói đó.
    dữ liệu sau khi bạn load lên rồi duyệt hết thì biến r kia chỉ lưu địa chỉ của dòng cuối cùng trong DataBase thôi

    để lấy được hình bạn chỉ cần thay câu command thành
    Code:
    command.CommandText = "SELECT * FROM Employee where HinhAnh=" + listviw1.SelectedItems[0].Text;

    (chỉ đọc mình cái images thôi , còn bạn đọc cả bảng là sai, và tốn thời gian )

    không biết bạn hiểu ý mình ko nữa ??
    Bác cho em hỏi là lúc ở CSDL thì mình muốn insert file ảnh vào cột hình ảnh thì phải làm ntn ạ? Cột hình ảnh em chọn kiểu dữ liệu là VarBinary. Xin bác chỉ giáo nếu được thì bác coding và up cho em tham khảo ạ. Cảm ơn bác rất nhiều

  10. #10
    Ngày gia nhập
    04 2010
    Nơi ở
    tự del nick .!
    Bài viết
    21

    kiểu VarBinary nói thật là mình chưa xài. mình thường xài kiểu image dưới db. (ko bít 2 kiểu này có giống nhau ko).
    để lưu vào thì bạn dùng parameter thôi.
    VD:
    Code:
    command.CommandText = "insert into Employee(id,HinhAnh) values(@id,@HinhAnh)";
    command.Parameters.Add(new Parameter("@id",     đối tượng giá trị ...kiểu int,char,string ..v.v)
    //Tương tự
    command.Parameter.Add(new Parameter("@HinhAnh", biến image của c#));
    +================================================= ========== +
    + Đừng e dè đối mặt thử thách. Chỉ khi thử sức mình, bạn mới học được can đảm. +
    +================================================= ========== +

Các đề tài tương tự

  1. ADO.NET Kích vào item trong listview hình ảnh sẽ hiện ra ở PictureBox?
    Gửi bởi moibietdi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 28-06-2013, 11:40 PM
  2. ADO.NET Dùng picturebox load 1 dòng dữ liệu trong Listview
    Gửi bởi hugovsmoon trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 06-01-2012, 11:53 AM
  3. ADO.NET Load học sinh lên listview khi chọn lớp trong listview khác
    Gửi bởi kael_vn90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 30-05-2011, 07:41 PM
  4. thay đổi vị trí các đối tượng trong picturebox C#
    Gửi bởi stardust_tqh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 18-03-2011, 11:57 AM
  5. Thay đổi hình ảnh của PictureBox trên C#
    Gửi bởi iloveit1208 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 25-02-2011, 10:43 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn