Trong SQL Server, ID là một số nguyên không null và một danh tính.Phương thức SQLCommand ExecuteScalar() trả về kiểu dữ liệu nào?
Khi tôi chạy đoạn mã sau, tôi nhận được một InvalidCastException trên dòng cuối cùng:
SqlCommand cmd = new SqlCommand();
cmd.Connection = _conn;
cmd.CommandText = @"INSERT INTO [Users] (Name, Email, Password) VALUES (@name, @email, @pass); SELECT SCOPE_IDENTITY()";
cmd.Parameters.AddWithValue("@name", newUser.Name);
cmd.Parameters.AddWithValue("@email", newUser.Email);
cmd.Parameters.AddWithValue("@pass", newUser.PasswordHash);
int id = (int)cmd.ExecuteScalar();
ExecuteScalar() trở về đây là gì? Dù trở về của nó có một ToString() mà làm cho nó trông giống như một số, vì vậy dòng khủng khiếp mã này hoạt động:
int id = Int32.Parse(cmd.ExecuteScalar().ToString());
Điều gì xảy ra nếu bạn gọi 'GetType() '? – SLaks
Wow, tại sao tôi không nghĩ về điều đó? Nó trả về một số thập phân. Cảm ơn. – Patty