m.Parameters.Add("a1",txtHoTen.Text);
phải là
m.Parameters.Add("@a1",txtHoTen.Text);
Em ơi! tham số của sql phải có kí tự "@" ở trước.với lại, cái này phải các tham số với tên giống hệt với thủ tục sql e đã viết(không phân biệt hoa thường). Như e viết thế kia là lỗi đó. Cái này có nhiều tài liệu nói mà.
Hơn nữa. Cái phần đăng ký của em vẫn chưa ổn đâu. Bởi vì khi đăng ký thì phải có bước kiểm tra xem tài khoản tồn tại hay chưa? nếu chưa mới được thêm vào. Nếu có rồi thì phải thông báo cho người ta chọn cái khác.
Cái câu truy vấnb của em viết trong code là không nên đâu. E nên học cách viết thủ tục, gọi thủ tục rồi truyền tham số. Bởi vì, xài thủ tục tốc độ nhanh hơn viết trong code như e nhiều. Ngoài ra, code của em sẽ sáng sủa hơn. Nếu viết trực tiếp trong code thì cái của em thế là là được:
a1=txtHoTen.Text.Trim();
...
chuoitruyvan = @"insert into users (hoten.matkhau,diachi,sodt,email)
values('"+a1+"','"+a2"','"+a3+"','"+a4+"','"+a5+"' )";
như vậy thì sql nó mới hiểu. Tuy nhiên, e thấy đó, code rất rối+xấu kinh.