30/09/2018, 16:22
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ài liên quan
bạn thử dùng
ve_dto.GiaVe = dr["GiaVe"].ToString()
xem được không .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ớinchar
. Nếu muốn e nên kết hợp bằng cách phát sinh kiểuInt
sau đó convert sang kiểunchar
, hoặc e có thể dùng công chuỗi nhưmahoadonxxx
vớixxx
là kiểuint
là số e tự phát sinh.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.