Specified cast is not valid -- Khi thông đọc dữ liệu float từ SQL tới C#

Mình có database trong SQL
CREATE TABLE VE
(
MaVe INT IDENTITY PRIMARY KEY,
DoiTuong NVARCHAR(50),
ThoiGian NVARCHAR(20),
GiaVe FLOAT
)
Khi sử dụng SqlDataReader thì nhận thông báo:Specified cast is not valid
Tại dòng ve_dto.GiaVe = (float)dr[“GiaVe”];
Làm sao để giải quyết mọi người?Cảm ơn.

bạn thử dùng ve_dto.GiaVe = dr["GiaVe"].ToString() xem được không .

1 Like

Sẵn cho em hỏi cách phát sinh mã tự động không.
Ví dụ với MaVe INT IDENTITY PRIMARY KEY.Dùng indentity thì phát sinh được với kiểu int.vậy với kiểu chuỗi(nchar) thì làm sao. Coi trên này mà ko tìm ra:http://www.w3schools.com/sql/sql_autoincrement.asp. Cảm ơn ^^

Theo a dc biết k biết đúng không thì nchar SQL Server không hỗ trợ tự tăng với nchar. Nếu muốn e nên kết hợp bằng cách phát sinh kiểu Int sau đó convert sang kiểu nchar, hoặc e có thể dùng công chuỗi như mahoadonxxx với xxx là kiểu int là số e tự phát sinh.

1 Like

Nếu em muốn không bao giờ bị trùng thì dùng kiểu uniqueidentifier. Nó sẽ tự sinh 1 dãy gồm 32 kí tự, chia làm 8 cặp.
Một cách khác, cách này không được performance cho lắm với data lớn, viết hàm random sinh chuỗi bao gồm cả chữ và số, khi insert thì rà một lượt qua database nếu chưa có chuỗi này thì cho phép insert, tồn tại thì gọi lại hàm random, cái này có thể dùng while.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?