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.

Phạm Hoàng Tuấn viết 18:26 ngày 30/09/2018

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

Hoàng Long viết 18:37 ngày 30/09/2018

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 ^^

Phạm Hoàng Tuấn viết 18:28 ngày 30/09/2018

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.

Trang Tuân viết 18:27 ngày 30/09/2018

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.

Bài liên quan
0