Đang tải dữ liệu...
ParkOur Việt

 Bản tin | Bài viết | Thư viện | Diễn đàn | Giới thiệu | Liên hệ | Tìm kiếm 
  Trang chủ  >  Diễn đàn .NET Việt Nam  >  Công nghệ nền tảng .NET/Mono  >  Căn bản về .NET Framework
  Căn bản về .NET Framework
  Điểm khác nhau giữa hai đoạn code  471 / 4
liver24
Thành viên mới
Đăng ký:  10/03/2007
Tham gia:  10/03/2007
Điểm:  106
Bài:  21
  Gửi lúc:  18/06/2008 10:13:44 PM
 Private cnSQL As SqlConnection
 Private cmSQL As SqlCommand
 Private strSQL As String
 Private drSQL As SqlDataReader
-------------------------------------
ConnectionString = "Server = ................."
strSQL = "UPDATE tblName SET .............."
cnSQL = SqlConnection(ConnectionString)
code # 1:
   
   
                  cmSQL = New SqlCommand(strSQL, cnSQL)
    cnSQL.Open()
                  cmSQL.ExecuteNonQuery()
code # 2:
    Dim myDS as New DataSet
    Dim myData as New SqlDataAdapter(strSQL,cnSQL)
    cnSQL.Open()
    myData.Fill(myDS,strSQL)
Hai đoạn code cho kết quả như nhau, cơ chế thực hiện khác nhau ở điểm nào? Nhờ admin và mọi người chỉ giúp.Thanks.
Dương Nguyễn
Thành viên mới
Đăng ký:  06/09/2005
Tham gia:  06/09/2005
Điểm:  3396
Bài:  855
  Gửi lúc:  25/06/2008 12:24:56 AM
thường thì tui thấy đối với đoạn code 1 thì cmd.Exce... chuyên dùng để excute mấy lệnh insert, update (chưa thấy dùng cho select)
đoạn code 2: đối với tui thì thường dùn adapter khi tui muốn lấy data, chính xác ở đây là lệnh select (insert, update thì chưa dùng)
Nếu xét về lý thuyết thuần túy thì tui cho rằng 2 cái trên đều excute cái query kia dc. Khi dùng đoạn code 2 thì bạn fí thêm memory vì fải khai báo thêm 1 cái adapter
Nguyễn Bá Mạnh
Thành viên mới
Đăng ký:  22/09/2007
Tham gia:  22/09/2007
Điểm:  20
Bài:  5
  Gửi lúc:  05/07/2008 05:10:11 PM   -   Nguyễn Bá Mạnh  sửa đổi lúc:  05/07/2008 05:13:13 PM
Đúng đúng. Đoạn code 1 để thực thi các câu lệnh không trả về dữ liệu, còn đoạn code 2 đổ dữ liệu về 1 dataset
Nông Tiến Bắc
Thành viên mới
Đăng ký:  20/03/2007
Tham gia:  21/03/2007
Điểm:  84
Bài:  21
  Gửi lúc:  18/08/2008 09:28:08 AM
Bạn nói là ko trả về cũng chưa chính xác, và nói chỉ là insert,update chưa thấy cho select cũng chưa chính xác

ExecuteScalar cho phép bạn lấy giá trị về, executeReader cũng cho phép lấy giá trị về...còn 2 đoạn code trên dùng theo từng yêu cầu, có thể khác nhau, trong hoàn cảnh khác nó giống nhau
giao duc thuong xuyen
Thành viên mới
Đăng ký:  27/04/2007
Tham gia:  27/04/2007
Điểm:  120
Bài:  30
  Gửi lúc:  18/08/2008 09:42:42 AM   -   giao duc thuong xuyen  sửa đổi lúc:  18/08/2008 09:43:26 AM
strSQL = "UPDATE tblName SET .............."

đoạn code 1: cmSQL.ExecuteNonQuery()
trả về giá trị kiểu int, kết quả = 0 nếu update ko thành công ngược lại > 0 tùy vào số dòng update được

đoạn code 2: myData.Fill(myDS,strSQL):
trả về null vì ko thực hiện câu select, do đó myDS = null

Chủ đề mới:
  • Bắt đầu học Dot Net như thể nào? (9573/49)  
  • Disable/ Enable Keyboard C# (3/0)  
  • Lock máy tính bằng C# (24/2)  
  • cho mình hỏi câu cơ bản tí thanks trước nhé (164/1)  
  • Chủ đề khác:
  • Giải phóng bộ nhớ (1428/3)
  • Xin chương trình dịch ngược mã nguồn của .NET ? (7325/23)
  • LAP TRINH HUONG DOI TUONG (3627/18)
  • convert từ .net framework 1.1 sang framework 2.0 (257/2)
  • làm sao sử dụng DLL không phải của dotnet Help!! (183/2)
  • Ý tưởng cho tài liệu học DOT NET . (13498/51)
  • ai chỉ dẫn cho em với!!!................ (198/2)
  • Thống kê thành viên online
    Số lượt truy cập: 4.413.884
    Số người trực tuyến: 71
    Trong đó có 3 thành viên: chutinhha, Vo Kien Cuong, Pham Thanh Tan
     Trang chủ | Giới thiệu | Liên hệ BQT | Tìm kiếm