PDA

View Full Version : Đoạn code sau sai cho nào?



nmd
30-11-2002, 08:17
Mình muốn insert/ delete row tu 1 table co sẵn. Mình đã thử theo sách ADO.NET nhưng gặp lỗi. Xin moi người xem dum:

SqlConnection conn= new SqlConnection("Initial Catalog=QLDT;Data Source=localhost;Integrated Security=SSPI");
SqlCommand cmd=new SqlCommand();

//cmd.CommandText="INSERT INTO KHACHHANG VALUES(18,'ABC','123','HO CHI MINH','123','NAM')";
]
cmd.CommandText="DELETE FROM KHACHHANG WHERE MAKH='5'";

cmd.Connection=conn;

conn.Open();
int j=cmd.ExecuteNonQuery();

//MessageBox.Show(j.ToString());

conn.Close();

Cứ đến chỗ int j=cmd. Ẽcute thi bi lỗi: system error. Lỗi chỗ nào?

Diamond
30-11-2002, 20:24
Trước hết bạn phải kiểm tra xem tài khoản mà bạn dùng kết nối đến database server có hợp lệ hay không. Với MS SQL server, mặc dù bạn có thể test connection OK nhưng khi chạy thì sẽ bị login fail nếu bạn không vào SQL Server để cấp tài khoản. Sau đó, nếu đã connect được thì coi tài khoản đó có quyền xoá hay không. BẠn nên catch các exception để xem hệ thống quăng ra lỗi gì nhé.

danceswithwolves
01-12-2002, 11:00
coi chừng bị lỗi Trusted Connection (required) nếu SQL Server của bạn cài Security Authentication Mode = Windows (NT). Thử lại bằng mixed-mode Authentication (Windows + SQL Server) xem sao ?

greenhill
03-12-2002, 12:30
Mình nghĩ bạn lỗi ở mothod ExecuteNonQuery thuộc lớp SqlCommand. ExecuteNonQuery dùng để thực thi 1 số câu truy vấn có tham số , còn bạn muốn chạy 1 câu truy vấn bình thường thì dùng Execute hay 1 method gần như vậy.

greenhill
03-12-2002, 12:43
Oh , I'm sorry
Mình bị lộn rồi, a` nếu như vậy thì có lẻ bị lỗi ConnectString hoặc CommandText thôi, nếu muốn chắc ăn thì dùng wizard để lấy ConnectString , dùng try..catch để bắc lỗi rồi xem lỗi gì.

hieuno
03-05-2010, 20:46
mình nghĩ là do lỗi CSDL , khi delete cái KHACHHANG xem nó có khóa ngoại nằm ở thằng nào không. nếu có thì nó không cho delete đâu .

Zephyr
04-05-2010, 16:21
Bỏ nó vô trong 1 cái try catch block, bắt cái SqlException

P/S: dạo này có gặp tụi TH00 không, hôm nào đi cafe 1 bữa đi