Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Cách lấy dữ liệu của tất các kiểu trong SQL sever

    Mình muốn lấy ra 1 cột có kiểu bất kì trong CSDL. không quan tâm đến kiểu
    truy vấn trả về như trong SQL: select cột from bảng where cột=điều kiện;

    Mình chỉ lấy ra được kiểu chuổi (chả, nvarchar.....), còn tất cả những kiểu khác như : int , float, datime.... thì ko dc.

    Lớp data:
    Mã:
         protected object ExecuteScalar(string sql)
            {
                try
                {
                    connOpen();
                    cmd = new SqlCommand(sql, conn);
                    return cmd.ExecuteScalar();
                }
                catch (System.Exception ex)
                {
                    XtraMessageBox.Show(ex.Message);
                    return null;
                }
                finally
                {
                    connClose();
                }
    
       public String Col(String Table, String col1, String col2)
            {
                string sql="select "+col1+ " from "+Table+" where "+col2;
                return (String)ExecuteScalar(sql);            
            }
            }
    Thực kiện truy vấn vào lấy về giá trị với điều kiện truyền vào:

    Mã:
        public String Tenhang(string t)
            { 
                return kn.Col("HANG_HOA", "TEN_HANG", " MA_HANG = '"+t+"' ");
            }
    Điều kiện của giá trị được nhập trực tiếp :
    Mã:
    txtTenhang.Text = hanghoaBul.Tenhang(txtMahang.Text);
    Khi minh lấy dữ liệu tại cột có kiểu Float thì nó báo lỗi : Unable to cast object of type 'System.Double' to type 'System.String'.

    Bạn nào biết chỉ mình với.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    vì kiểu object thì bạn cast sang string được, nhưng các kiểu khác thì phải parse nó mới dc
    khi lấy cột có kiểu float thì trong c# bạn phải parse nó:

    double.parse(cmd.ExecuteScalar());

  3. #3
    Mình nghĩ là do Method Tenhang(string t) có đối số là một kiểu string, do vậy khi truyền dữ liệu vào là một giá trị kiểu float thì nó sinh ra lỗi ngay ở chỗ này.
    Bạn có thể sử dụng phương pháp overload method để giải quyết vấn đề này [IMG]images/smilies/smile.png[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •